﻿
function $(objid){return document.getElementById(objid);}

String.prototype.trim=function(){
    return this.replace(/(^\s*)|(\s*$)/g, ""); 
}

function getValue(el){
    try{
        return Ext.getDom(el).value.trim();
    }
    catch(e){
       showError("the '"+el+"' is not object!"); 
       return;
    }
}

String.prototype.toJson=function(){
    try{
        return eval('('+this+')');
    }
    catch(e){
        alert("this is not the type of json!");
        return;
    }
}

String.prototype.replaceAll=function(str1,str2){
    var Result=this;
    while(Result.indexOf(str1)>=0)
    {
        Result=Result.replace(str1,str2);
    }
    return Result;
}


GetNavigator=function(){
    if(document.all){
        return {isIE:true,version:navigator.userAgent.toLowerCase().match(/msie ([\d.]+)/)[1]};
    }
    else{
        return {isIE:false};
    }
}


var CheckBox={
    getValue:function(objname){
        var Result=[];
        for(var i=0;i<document.getElementsByName(objname).length;i++){
            if(document.getElementsByName(objname)[i].checked){
                Result.push("'"+document.getElementsByName(objname)[i].value+"'");
            }
        }
        return Result;
    },
    selectAll:function(sender,item){
        for(var i=0;i<document.getElementsByName(item).length;i++){
            document.getElementsByName(item)[i].checked=(document.getElementById(sender).checked?true:false);
        }
    },
    load:function(objname,value,flag){
        for(var i=0;i<document.getElementsByName(objname).length;i++)
        {
            if((flag+value+flag).indexOf(flag+document.getElementsByName(objname)[i].value+flag)>-1)
            {
                document.getElementsByName(objname)[i].checked=true;
            }
        }
    }
}

var Radio={
    getValue:function(objname){
        for(var i=0;i<document.getElementsByName(objname).length;i++)
        {
            if(document.getElementsByName(objname)[i].checked)
            {
                return document.getElementsByName(objname)[i].value;
            }
        }
    },
    load:function(objname,value){
        for(var i=0;i<document.getElementsByName(objname).length;i++)
        {
            if(document.getElementsByName(objname)[i].value==value)
            {
                document.getElementsByName(objname)[i].checked=true;
            }
        }
    }
}

var Dropdownlist={
    load:function(text,value,selected,control){
        if(control)
        {
            this.removeAll(control);
            for(var i=0;i<text.length;i++)
            {
                control.options.add(new Option(text[i],value[i]));
                if(selected==value[i])
                {
                    control.selectedIndex=i;
                }
            }
        }
    },
    removeAll:function(control){
        if(control)
        {
            for(var k in control.options)
            {
                if(document.all)
                {
                    control.options.remove(k);
                }
                else
                {
                    control.remove(k);
                }
            }
        }
    },
    removeAt:function(control,index){
            if(document.all)
            {
                control.options.remove(index);
            }
            else
            {
                control.remove(index);
            }
    }
}

checkNull=function(params){//[objID,value,showTip]
    for(var item=0;item<params.length;item++)
    {
        if((params[item][1]+"").trim()=="")
        {
            $(params[item][0]).focus();
            alert(params[item][2]);
            return false;
        }
    }
    
    return true;
}

String.prototype.checkContent=function(filter){//检查提交内容
    var pattern={
        email:"(@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,})",//电子邮件
        num:"[0-9]{beginNum,endNum}",//连续的数字，位数自定义
        content:"",//自定义内容
        mobile:"^[1-9][0-9]{10}$"
    };
   var reg=new RegExp();
    if(filter.mobile)
    {
        reg.compile(pattern.mobile);
        if(!reg.test(this))
        {
            showErrorTip(filter.mobile.errorTip);
            return false;
        }
    }
    if(filter.email)
    {
        reg.compile(pattern.email);
        if(reg.test(this))
        {
            showErrorTip(filter.email.errorTip);
            return false;
        }
    }
    if(filter.num)
    {
        pattern.num=pattern.num.replace('beginNum',filter.num.beginNum).replace('endNum',filter.num.endNum);
        reg.compile(pattern.num);
        if(reg.test(this))
        {
            showErrorTip(filter.num.errorTip);
            return false;
        }
    }
    if(filter.content)
    {
        for(var i in filter.content.content)
        {
            pattern.content=filter.content.content[i];
            if(typeof(pattern.content)=="string")
            {
                reg.compile(pattern.content);
                if(reg.test(this))
                {
                    alert(filter.content.errorTip.replace("{0}",pattern.content));
                    return false;
                }
            }
        }
    }
    return true;
}

obj={
    create:function(object){
        if(!object.tagName)return;
        if(object.tagName=="iframe"){
            var result=document.createElement("<iframe name='"+(object.params.name||"")+"' ></iframe>");
            for(var i in object.params)
            {
                result[i]=object.params[i];
            }
            return result;
        }
        if(object.tagName=="input"&&typeof(object.params.type)!="undefined"&&(object.params.type=="radio"||object.params.type=="checkbox")&&GetNavigator().isIE&&GetNavigator().version!="8.0")
        {
            var result=document.createElement("<input type='"+object.params.type+"' name='"+(object.params.name||"")+"' id='"+(object.params.id||"")+"' value='"+(object.params.value||"")+"'/>");
        }
        else
        {
            var result=document.createElement(object.tagName);
            for(var i in object.params)
            {
                result[i]=object.params[i];
            }
            for(var item in object.items)
            {
                if(typeof(object.items.tagName)!="undefined"&&object.items.tagName.toLowerCase()=="table")
                {
                    result.insertRow(0);
                }
                else
                {
                    var tempobj=this.create(object.items[item]);
                    if(tempobj)
                    result.appendChild(tempobj);
                }
            }
            for(var i in object.listeners){
                if(!object.listeners[i])continue;
                this.addEvent(result,i,object.listeners[i]);
            }
        }
       return  result;
    },
    addEvent:function(obj,action,name){
        if(action=="undefined"||name=="undefined")return;
        if(GetNavigator().isIE)
        {
            obj.attachEvent("on"+action,name);
        }
        else
        {
            obj.addEventListener(action,name,false);
        }
    },
    outerHTML:function(object){
        if(document.all)
        {
            return object.outerHTML;
        }
        else
        {
            var str="<"+object.tagName;
            for(var item in object.attributes)
            {
                if(typeof(object.attributes[item].value)!="undefined")
                str+="  "+object.attributes[item].name+"="+object.attributes[item].value;
            }
            str+=">"+object.innerHTML+"</"+object.tagName+">";
            return str;
        }
    }
}

selectFile=function(){
    var object={
        tagName:"div",
        params:{
            display:'none',
            innerHTML:"<object id=fileDialog width=0 height=0 classid='clsid:F9043C85-F6F2-101A-A3C9-08002B2F49FB'></object>"
        }
    }
    
    var fileDialogCon=obj.create(object);
    Ext.getBody().appendChild(fileDialogCon);
    var fileDialog=Ext.getDom("fileDialog");
    fileDialog.showOpen();
    return fileDialog.FileName;
}

var image={
    show:function(img,maxWidth,maxHeight){
		var rate=(maxHeight/img.height>maxWidth/img.width?maxWidth/img.width:maxHeight/img.height);
		if(rate<1)
		{
		    img.width=img.width*rate;
		    img.height=img.height*rate;
		}
		return img; 
    }
}

var Province={
    getData:function(config){
        Ajax.request({
            method:"GET",
            url:"/manager/country/province.ashx",
            params:{
                action:config.action
            },
            success:config.success,
            failure:function(form,action){
                //alert(form.responseText);
            }
        });
    }
}

Ext.override(Ext.menu.Menu, {   
    autoWidth : function(){   
        var el = this.el, ul = this.ul;   
        if(!el){   
            return;   
        }   
        var w = this.width;   
        if(w){   
            el.setWidth(w);   
        }else if(Ext.isIE && !Ext.isIE8){   
            el.setWidth(this.minWidth);   
            var t = el.dom.offsetWidth; // force recalc   
            el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));   
        }   
    }   
}); 

Ext.namespace("Kyf.Event");

Kyf.Event=function(event){
    this.e=window.event?window.event:event;
}

Kyf.Event.prototype.getObj=function(){
    return this.e.srcElement?this.e.srcElement:this.e.target;
} 

$A=function(a){
    return a?Array.apply(null,a):new Array;
}

Array.prototype.contain=function(obj){
    var Result=-1;
    for(var i=0;i<this.length;i++)
    {
        if(this[i]==obj){
            Result=i;
            break;
        }
    }
    return Result;
}

CreateContainer=function(config){
    var arr=new Array();
    arr.push({
        tagName:"td",
        params:{
            innerHTML:config.label+"：",
            width:config.labelWidth||"",
            height:config.height||"",
            align:config.labelAlign||"left"
        }
    });
    
    arr.push({
        tagName:"td",
        params:{
            id:config.containerID,
            width:config.containerWidth||""
        }
    });
    
    return arr;
}
