﻿var languageType = 'office';
var listtableUrl = null;

String.prototype.trim = function(){
	return this.replace(/(^\s+)|(\s+$)/g, '');
}
function BrowserDetect() {
	var doc=window.document;
	var navVersion=navigator.appVersion.toLowerCase();
	this.ie4=(!doc.getElementById&&doc.all)?true:false;
	this.ie5=(navVersion.indexOf("msie 5.0")!=-1)?true:false;
	this.ie55=(navVersion.indexOf("msie 5.5")!=-1)?true:false;
	this.ie6=(navVersion.indexOf("msie 6.0")!=-1)?true:false;
	this.ie7=(navVersion.indexOf("msie 7.0")!=-1)?true:false;
	this.isIE=(this.ie5||this.ie55||this.ie6||this.ie7)?true:false;
	this.isGecko=!this.isIE;
}
var browser = new BrowserDetect();

function tokenKey(){
	var hex = new Array('0','1','2','3','4','5','6','7','8', '9','a','b','c','d','e','f');
	var t = '';
	for(var i = 0; i<32; i++){
		t += hex[Math.floor(Math.random() * 16)];
	}
	return t.toUpperCase();
}

function AbsPos(el){
	for(var lx=0,ly=0;el!=null;lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent);
	return {x:lx,y:ly}
}

function onKeydown(evt, act){
	var iekey = evt.keyCode;
	if(iekey == '13') {
	    eval(act);
	    return false;
	}
}

/* rewrite url */
function HttpUrl(){
    return window.location.pathname + window.location.search;
}
function EscapeUrl()
{
	return escape(window.location.pathname + window.location.search);
}
function ReGobackUrl(u){
    var url = '';
    if(listtableUrl != null){
        url = escape(listtableUrl);
    }else{
        url = EscapeUrl();
    }
    if(u.indexOf('?') == -1){
        return '?url='+ url;
    }else{
        return '&url='+ url;
    }
}
function ReWriteUrl(url){
	window.location.href = url + ReGobackUrl(url);
}
function ReWriteHref(o){
	o.href = o.href + ReGobackUrl(o.href);
}
function ReWriteForm(f, u){
    f.method = 'GET';
    f.__VIEWSTATE.disabled = true;
    if(u){
        f.action = u;
    }else{
        f.action +'&url='+ EscapeUrl();
    }
}

/* get language resources */
function GetResources(id){
    if (languageType == 'admin'){
        return GetAdminRes(id);
    }
    return GetOfficeRes(id);
}

/* get admin language resources */
var adminResArray = new Array();
function GetAdminRes(id){
    var cmd = new RemoteCommand('Platform', 'GetAdminRes');
    cmd.SetParameter('id', id);
    return cmd.Execute().ReturnValue;
}

/* get office and foreground language resources */
var officeResArray = new Array();
function GetOfficeRes(id){
    var cmd = new RemoteCommand('Platform', 'GetOfficeRes');
    cmd.SetParameter('id', id);
    return cmd.Execute().ReturnValue;
}

/* listing checkboxs */
function ChkboxAllClick(o){
    var chks = document.getElementsByName('chkbox');
    for(var i=0; i<chks.length; i++){
        chks[i].checked = o.checked;
    }
}
function ChkboxSigleClick(){
    var chkall = document.getElementById('chkbox_all');
    chkall.checked = IsAllChecked();
    
    function IsAllChecked(){
        var isallChecked = true;
        var chks = document.getElementsByName('chkbox');
        for(var i=0; i<chks.length; i++){
            if(!chks[i].checked){
                isallChecked = false;
                break;
            }
        }
        return isallChecked;
    }
}
function ChkBoxValues(e){
    var names = '';
    var chks = document.getElementsByName('chkbox');
    for(var i=0; i<chks.length; i++){
        if(chks[i].checked){
            names += ','+ chks[i].value;
        }
    }
    if(names.length == 0){
        if(!e || (e.indexOf('|') == -1 && (e.indexOf('sync') > -1 || e.indexOf('single') > -1)) || (e.split('|').length == 2 && e.indexOf('sync') > -1 && e.indexOf('single') > -1)){
            alert(GetResources(100711, languageType));
        }
    }else{
        names = names.substring(1);
    }
    return names;
}

/* check form control */
function CheckFormSubmit(o, p){
    this.ChkVal = chkVal;
    this.ChkReg = chkReg;
    this.ChkFileExt = chkFileExt;
    this.ChkIsExistName = chkIsExistName;
    this.ChkIsExistName1 = chkIsExistName1;
    this.ChkIsExistName2 = chkIsExistName2;
    this.ChkIsExistName3 = chkIsExistName3;
    this.ExecuteAPI = executeAPI;
    this.IsCheck = isCheck;
    this.IsNumber = isNumber;
    this.IsFloat = isFloat;
    this.IsEmail = isEmail;
    this.IsPhone = isPhone;
    this.IsUrl = isUrl;
    this.IsHttpUrlOrLocalUrl = isHttpUrlOrLocalUrl; 
    this.IsCompareDate = isCompareDate;
    this.IsSortChildId = isSortChildId;
    this.GetValue = GetValue;
    this.SetValue = SetValue;
    this.GetObject = GetObject;
    this.Focus = Focus;
    this.ChkEqual = chkEqual;
    this.ChkLength = chkLength;
    
    if(!p){
        p = '';
    }
    
    /*
    e: element
    v: compare value
    m: message
    */
    function chkVal(e, v, m){
        var val = GetValue(e);
        if(val == v){
            if(m){ 
                SendMessage(e, m);
            } 
            return true;
        }
        return false;
    }

    /*
    e: element
    t: file ext, exe|jpg
    m: message
    */
    function chkFileExt(e, t, m){
        var val = GetValue(e);
        if(val.length == 0){
            SendMessage(e, m);
            return false;
        }
        var ext = val.substring(val.lastIndexOf('.')+1).toLowerCase();
        var types = t.toLowerCase().split('|');
        for(var i=0; i<types.length; i++){
            if(types[i] == ext){
                return true;
            }
        }
        SendMessage(e, m);
        return false;
    }
    
    /*
    e: element
    r: regex
    m: message
    */
    function chkReg(e, r, m){
        var val = GetValue(e);
        var reg ;
        if(typeof(r) == 'object'){
            reg = new RegExp(r)
        }else{
            reg = new RegExp(r, 'gi')
        }
        if(!reg.test(val)){
            SendMessage(e, m);
            return true;
        }
        return false;
    }
    
    /*
    e1:element
    e2:element
    m:message
    */
    function chkEqual(e1, e2, m){
        var val1 = GetValue(e1);
        var val2 = GetValue(e2);
        if(val1 != val2){
            SendMessage(e2, m);
            return false;
        }
        return true;
    }
    
    /*
    e:element
    m:message
    min:min length
    max:max length
    */
    function chkLength(e, m, min, max){
        var val = GetValue(e);
        var len = CalcuCharLength(val);
        if(len < min){
            SendMessage(e, m)
            return false;
        }
        if(max){
            if(len > max){
                SendMessage(e, m)
                return false;
            }
        }        
        return true;
    }
    
    /*
    e: element
    api: web service file name (platform.asmx)
    method: api method
    */
    function chkIsExistName(e, api, method, resId){
        if(!resId){
            resId = 100728;
        }
        var val = GetValue(e);
        var cmd = new RemoteCommand(api, method);
        cmd.SetParameter('name', val);
        if(cmd.Execute().ReturnValue == true){
            SendMessage(e, resId);
            return true;
        }
    }    
    
    /*
    e: element
    t: arg1
    api: web service file name (platform.asmx)
    method: api method
    */
    function chkIsExistName1(e, t, api, method, resId){
        if(!resId){
            resId = 100728;
        }
        var val = GetValue(e);
        var cmd = new RemoteCommand(api, method);
        cmd.SetParameter('arg', t);
        cmd.SetParameter('name', val);
        if(cmd.Execute().ReturnValue == true){
            SendMessage(e, resId);
            return true;
        }
    }
    
    /*
    e: element
    t1: arg1
    t2: arg2
    api: web service file name (platform.asmx)
    method: api method
    */
    function chkIsExistName2(e, t1, t2, api, method, resId){
        if(!resId){
            resId = 100728;
        }
        var val = GetValue(e);
        var cmd = new RemoteCommand(api, method);
        cmd.SetParameter('arg1', t1);
        cmd.SetParameter('arg2', t2);
        cmd.SetParameter('name', val);
        if(cmd.Execute().ReturnValue == true){
            SendMessage(e, resId);
            return true;
        }
        return false;
    }
    
    /*
    e: element
    t1: arg1
    t2: arg2
    t3: arg2
    api: web service file name (platform.asmx)
    method: api method
    */
    function chkIsExistName3(e, t1, t2, t3, api, method, resId){
        if(!resId){
            resId = 100728;
        }
        var val = GetValue(e);
        var cmd = new RemoteCommand(api, method);
        cmd.SetParameter('arg1', t1);
        cmd.SetParameter('arg2', t2);
        cmd.SetParameter('arg3', t3);
        cmd.SetParameter('name', val);
        if(cmd.Execute().ReturnValue == true){
            SendMessage(e, resId);
            return true;
        }
        return false;
    }

    /*
    e: element
    m: message
    t: arg array
    api: web service file name (platform.asmx)
    method: api method
    */
    function executeAPI(e, m, t, api, method){
        var val = GetValue(e);
        var cmd = new RemoteCommand(api, method);
        if(t){
            for(var i = 0; i < t.length; i++){
                cmd.SetParameter('arg' + i, t[i]);
            }
        }
        cmd.SetParameter('name', val);
        
        if(cmd.Execute().ReturnValue == true){
            SendMessage(e, m);
            return true;
        }
        return false;
    }

    /*
    e: element
    m: message
    */
    function isCheck(e, m){
        var elems = o[p+e];
        if(elems){
            if(elems.length){
                for(var i=0; i<elems.length; i++){
                    if(elems[i].checked){
                        return true;
                    }
                }
            }else{
                if(elems.checked){
                    return true;
                }
            }
        }
        SendMessage(e, m);
        return false;
    }
    
    /*
    e: element
    m: message
    na：not allow negative
    */
    function isNumber(e, m, na){
        var val = GetValue(e);
        if(val.length == 0){
            SendMessage(e, m);
            return false;
        }
        var l = "1234567890";
        if (!na){
            l = l + "-";
        }
        for(var i=0; i<val.length; i++){
            var c = val.charAt(i);
            if(l.indexOf(c) == -1){
                SendMessage(e, m);
                return false;
            }
        }
        return true;
    }
    
    /*
    e: element
    m: message
    */
    function isFloat(e, m){
        var val = GetValue(e);
        var reg = new RegExp(/^-?\d+(\.|)\d*$/gi);
        if(!reg.test(val)){
            SendMessage(e, m);
            return false;
        }
	    return true;
    }
    
    /*
    e: element
    m: message
    a: allow null
    */
    function isEmail(e, m, a){
        var val = GetValue(e);
        if(val.length == 0 && a == true){
            return true;
        }
        
        if(val.length == 0){
            SendMessage(e, m);
            return false;
        }
        
        var regInvalid = new RegExp(/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/);
        var regValid = new RegExp(/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/);
        if (!regInvalid.test(val) && regValid.test(val)){
            return true;
        }else{
            SendMessage(e, m);
            return false;
        }
    }
     /*
    e: element
    m: message
    a: allow null
    */
    function isPhone(e, m, a){
        var val = GetValue(e);
        if(val.length == 0 && a == true){
            return true;
        }
        
        if(val.length == 0){
            SendMessage(e, m);
            return false;
        }          
        var regValid = new RegExp(/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/);
        var regValid2=new RegExp(/^((\(\d{3}\))|(\d{3}\-))?13\d{9}|15[89]\d{8}$/);
        if (regValid.test(val) || regValid2.test(val)){
            return true;
        }else{
            SendMessage(e, m);
            return false;
        }
    } 
    
    /*
    e: element
    m: message
    a: allow null
    */
    function isUrl(e, m, a){
        var val = GetValue(e);
        if(val.length == 0 && a == true){
            return true;
        }
        
        if(val.length == 0){
            SendMessage(e, m);
            return false;
        }
        
        var regValid = new RegExp(/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/ig);
        if (regValid.test(val)){
            return true;
        }else{
            SendMessage(e, m);
            return false;
        }
    }
   
    function isHttpUrlOrLocalUrl(e, m, a){
        var val = GetValue(e);
        if(val.length == 0 && a == true){
            return true;
        }
        
        if(val.length == 0){
            SendMessage(e, m);
            return false;
        }
        var regValid1 = new RegExp(/^http:\/\/[A-Za-z0-9\-_]+\.[A-Za-z0-9\-_]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/ig);
        var regValid2 = new RegExp(/^\/.+?/ig);
        var regValid3 = new RegExp(/^#$/ig);
        if (regValid1.test(val) || regValid2.test(val) || regValid3.test(val)){
            return true;
        }else{
            SendMessage(e, m);
            return false;
        } 
    }  
    
    function isCompareDate(e1, e2, m){
        var val1;
        try{
            val1 = GetValue(e1);
        }catch(e){}
        if(!val1){
            val1 = e1;
        }
        var val2 = GetValue(e2);
        
        if(DateDiff(val1, val2) < 0){
            SendMessage(e2, m);
            return false;
        }
        
        return true;
    }
    
    /*
    e: element
    cid: current object sort (key) id
    api: web service file name (platform.asmx)
    */
    function isSortChildId(e, cid, api){
        var val = GetValue(e);
        if(cid != 0 && val != 0){
            var cmd = new RemoteCommand(api, 'IsSortChildId');
            cmd.SetParameter('currentId', cid);
            cmd.SetParameter('selectedId', val);
            if(cmd.Execute().ReturnValue != false){
                SendMessage(e, 100716);
                return true;
            }
        }
        return false;
    }
    
    function GetValue(e){
        return o[p+e].value.trim();
    }
    
    function SetValue(e, v){
        o[p+e].value = v;
    }
    
    function GetObject(e){
        return o[p+e];
    }
    
    function SendMessage(e, m){
        if(typeof(m) == 'number'){
            alert(GetResources(m));
        }else{
            alert(m);
        }
        try{
            Focus(e);
        }catch(e){
            //alert(e);
        }
    }
    
    function Focus(e){
        o[p+e].focus();
        o[p+e].select();
    }
}
function SubmitFromValidor(o, s){
    var l = s.length;
    for(var j=0; j<l; j++){
        if(s[j][0].length == 0){
            continue;
        }
        switch(s[j][1]){
            case '1':
            case '2':
            case '3':
            case '10':
                if(s[j][2] == 'True'){
                    if(o.ChkVal(s[j][0], '', 100718)){
                        return false;
                    }
                }
                if(o.GetValue(s[j][0]).length > 0 && s[j][3].length > 0){
                    //todo check regex
                    if(o.ChkReg(s[j][0], s[j][3], 100702)){
                        return false;
                    }
                }
                break;
            case '4':
            case '5':
                if(s[j][2] == 'True'){
                    if(!o.IsCheck(s[j][0], 100718)){
                        return false;
                    }
                }
                break;
            case '6':
                if(s[j][2] == 'True'){
                    if(o.ChkVal(s[j][0], '', 100718)){
                        whe.focus();
                        return false;
                    }
                }
                break;
            case '7':
                if(s[j][2] == 'True'){
                    if(document.getElementById('img'+s[j][0]).innerHTML == ''){
                        alert(GetResources(100718));
                        document.getElementById('btn'+s[j][0]).focus();
                        return false;
                    }
                }
                break;
            case '8':
                if(s[j][2] == 'True'){
                    if(document.getElementById('file'+s[j][0]).innerHTML == ''){
                        alert(GetResources(100718));
                        document.getElementById('btn'+s[j][0]).focus();
                        return false;
                    }
                }
                break;
            case '9':
                if(s[j][2] == 'True'){
                    if(!CheckRegion1(s[j][0])){
                        return false;
                    }
                }
                break;
            default:
                if(!SubmitFromValidorCallback(s[j][0], s[j][2])){
                    return false;
                }
                break;
        }
    }
    return true;
}
function DateDiff(sDate1, sDate2){
    var aDate, oDate1, oDate2, iDays
    aDate = sDate1.split("-");
    oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
    aDate = sDate2.split("-");
    oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
    iDays = parseInt((oDate2 - oDate1)  /  1000  /  60  /  60  /24);
    return iDays;
}
function SubmitFromValidorCallback(id, isRequired){
    return true;
}
function ExtItemInitCallback(id, isRequired){
}
function ExtItemInit(o, s){
    var l = s.length;
    for(var j=0; j<l; j++){
        if(s[j][0].length == 0){
            continue;
        }
        if(s[j][2] == 'True'){
            var parentNode = null;
            switch(s[j][1]){
                case '1':
                case '2':
                case '3':
                case '10':
                    parentNode = o.GetObject(s[j][0]).parentNode;
                    break;
                case '4':
                case '5':
                    parentNode = o.GetObject(s[j][0])[0].parentNode;
                    break;
                case '6':
                    //parentNode = o.GetObject(s[j][0]).parentNode.parentNode;
                    break;
                case '7':
                    //parentNode = document.getElementById('img'+s[j][0]).parentNode;
                    break;
                case '8':
                    //parentNode = document.getElementById('file'+s[j][0]).parentNode;
                    break;
                case '9':
                    parentNode = document.getElementById('hd'+s[j][0]).parentNode;
                    break;
                default:
                    ExtItemInitCallback(s[j][0], s[j][2]);
                    break;
            }
            if(parentNode != null){
                var redpoint = document.createElement("span");
                redpoint.id = 'redpoint';
                redpoint.innerHTML = '&nbsp;<font color="red">*</font>';
                parentNode.appendChild(redpoint);
            }
        }
    }
}
/* handler for loading xml */
function LoadXmlDoc(path) {
	var oDoc = null;
	if (window.ActiveXObject) {
		var prefix = ["MSXML3","MSXML2","MSXML","Microsoft"];
		for(var i=0;i<prefix.length;i++) {
			try {
				oDoc = new ActiveXObject(prefix[i] + ".DOMDocument");
				if (oDoc)
				{
					break;
				}
			} catch (e) {}
		}
	}
	else if (document.implementation && document.implementation.createDocument) {
		oDoc = document.implementation.createDocument("", "", null);
		if (oDoc.readyState == null) {
			oDoc.readyState = 1;
			oDoc.addEventListener("load", function () {
				oDoc.readyState = 4;
				if (typeof oDoc.onreadystatechange == "function")
					oDoc.onreadystatechange();
			}, false);
		}
	}
	
	if (!oDoc){
	    alert('Not support!\nplease install a XML parser');
	    return;
	}
	
	oDoc.async = false;
	if(path.indexOf('>') == -1){
	    oDoc.load(path);
	}else{
	    if(navigator.userAgent.indexOf("MSIE") > 0){
	        oDoc.loadXML(path);
	    }else{
	        var dp = new DOMParser();
            var newDOM = dp.parseFromString(path, "text/xml");
            var newElt = oDoc.importNode(newDOM.documentElement, true);
            oDoc.appendChild(newElt);
	    }
	}
	return oDoc;
}

/* get scrollbar top height */
function ScrollbarTop(){
    var agt = navigator.userAgent.toLowerCase();
    var ie = ((agt.indexOf("msie") != -1) && (agt.indexOf('opera') == -1) && (agt.indexOf('omniweb') == -1));
    if(ie){
        var body = (document.compatMode && document.compatMode != 'BackCompat') ? document.documentElement : document.body;
        return body.scrollTop;
    }else{
        return window.pageYOffset;
    }
}

/* setup a iframe window */
var divWinContainer = null;
var frmWinContainer = null;
var frmWinHtmlContent = null;
function ShowHtmlWindow(width, height, html, fix, scroll){
    frmWinHtmlContent = html;
    ShowOpenWindow(width, height, '/Global/BlankWindow.aspx', fix, scroll)
}
function GetWinHtmlContent(){
    return frmWinHtmlContent;
}
function ShowOpenWindow(width, height, src, fix, scroll){
	/* show window page */
	divWinContainer = document.getElementById('divWinContainer');
    if(divWinContainer == null){
        frmWinContainer = document.createElement("iframe");
        frmWinContainer.id = 'frmWinContainer';
        frmWinContainer.setAttribute('name', 'frmWinContainer', 0);
        frmWinContainer.className = 'frmWinContainer';
        frmWinContainer.frameBorder = '0px';
        frmWinContainer.scrolling = 'no';
        
        divWinContainer = document.createElement("div");
        divWinContainer.id = 'divWinContainer';
        divWinContainer.className = 'divWinContainer';
        divWinContainer.appendChild(frmWinContainer);
        
        window.document.body.appendChild(divWinContainer);
    }
    
    var p = 'width='+ width +'&height='+ height;
    if(scroll){
        p += '&scroll='+ scroll;
    }else{
        p += '&scroll=auto';
    }
    
    if(src.indexOf('?') > -1){
        src += '&'+ p;
    }else{
        src += '?'+ p;
    }
    
    if(!fix){
        fix = 0;
    }
    
    frmWinContainer.style.width = width +'px';
    frmWinContainer.style.height = height +'px';
    frmWinContainer.src = src;
    
	//create an interval
	ResetWindowPos(width, height, fix);
	ResetMaskLayerPos();
	
	if(top.topframe && window.parent.name.length == 0){
	    top.topframe.ResetMaskLayerPos();
	}

    //creat events
	window.onresize = function(){
	    ResetWindowPos(width, height, fix);
	    ResetMaskLayerPos();
	};
	window.onscroll = function(){
	    ResetWindowPos(width, height, fix);
	};
}
function ResetWindowPos(width, height, fix){
	var clientHeight = document.documentElement.clientHeight;
	var clientWidth = document.body.clientWidth;
	
    var left = (clientWidth - width) / 2;
    var top = (clientHeight - fix - height) / 2 + ScrollbarTop();
    if(top < 20){
        top = 20;
    }
    
    divWinContainer.style.width = width +'px';
    divWinContainer.style.height = height +'px';
    divWinContainer.style.left = left +'px';
    divWinContainer.style.top = top +'px';
    divWinContainer.style.visibility = 'visible';
}
function HideOpenWindow(){
    frmWinContainer = document.getElementById('frmWinContainer');
	if(frmWinContainer){
	    frmWinContainer.src = '';
	}
	
	divWinContainer = document.getElementById('divWinContainer');
	if(divWinContainer){
	    divWinContainer.style.left = '0px';
	    divWinContainer.style.top = '0px';
	    divWinContainer.style.width = '0px';
	    divWinContainer.style.height = '0px';
	    divWinContainer.style.visibility = 'hidden';
	}
	
	window.onresize = null;
	window.onscroll = null;
	
	HideMaskLayer();
	if(top.topframe && window.parent.name.length == 0){
	    top.topframe.HideMaskLayer();
	}
}
var disabledSelectArray = null;
function DisableSelect(left, top, width, height){
	var x_bt = left + width;
	var y_bt = top + height;
	var sl_pos, sl_x_top, sl_y_top, sl_x_bt, sl_y_bt;
	var sls = document.getElementsByTagName('SELECT');
	disabledSelectArray = new Array();
	for(var i=0; i<sls.length; i++){
		sl_pos = AbsPos(sls[i]);
		sl_x_top = sl_pos.x;
		sl_y_top = sl_pos.y;
		sl_x_bt = sl_x_top + sls[i].clientWidth;
		sl_y_bt = sl_y_top + sls[i].clientHeight;
		
		if(((sl_x_bt > left) && (sl_x_top < x_bt)) && ((sl_y_bt > top) && (sl_y_top < y_bt))){
		    sls[i].disabled = true;
		    disabledSelectArray[disabledSelectArray.length] = sls[i];
		}
	}
}
function ShowMaskLayer(left, top, width, height){
	var divMaskLayer = document.getElementById('divMaskLayer');
    if(divMaskLayer == null){
        divMaskLayer = document.createElement("div");
        divMaskLayer.id = 'divMaskLayer';
        divMaskLayer.className = 'divMaskLayer';
        window.document.body.appendChild(divMaskLayer);
    }
	divMaskLayer.style.left = left +'px';
	divMaskLayer.style.top = top +'px';
	divMaskLayer.style.width = width +'px';
	divMaskLayer.style.height = height +'px';
	divMaskLayer.style.visibility = 'visible';
	
	DisableSelect(left, top, width, height);
}
function ResetMaskLayerPos(){
	var eHeight = document.documentElement.clientHeight;
	var bHeight = document.body.clientHeight;
	var clientWidth = document.body.clientWidth;
	var clientHeight = (eHeight > bHeight) ? eHeight : bHeight;
	ShowMaskLayer(0, 0, clientWidth, clientHeight);
}
function HideMaskLayer(){
	var divMask = document.getElementById('divMaskLayer');
	if(divMask){
	    divMask.style.left = '0px';
	    divMask.style.top = '0px';
	    divMask.style.width = '0px';
	    divMask.style.height = '0px';
	    divMask.style.visibility = 'hidden';
	}
	if(disabledSelectArray != null){
	    for(var i=0; i<disabledSelectArray.length; i++){
	        disabledSelectArray[i].disabled = false;
	    }
	    disabledSelectArray = null;
	}
}

/* t_tag_click */
function t_tag_event(id){
    
}
function t_tag_show(o){
    var start = 0;
    var tags = o.parentNode.getElementsByTagName('DIV');

    if(tags[0].className == 'tag0'){
        start = 2;
        tags[1].className = 'tagOff';
    }else{
        start = 1;
        tags[0].className = 'tagOff_0';
    }
    
    for(var i=start; i<tags.length; i++){
        tags[i].className = 'tagOff';
    }
    
    if(tags[0].id == o.id){
        o.className = 'tagOn_0';
    }else{
        o.className = 'tagOn';
    }
    
    var tag = null;
    for(var i=start-1; i<tags.length; i++){
        if(tags[i].id == o.id){
            tag = document.getElementById('tag_'+ o.id);
            if(tag){
                tag.style.display = 'block'
            }else{
                alert('there is no such \'tag_'+ o.id +'\'');
            }
        }else{
            tag = document.getElementById('tag_'+ tags[i].id);
            if(tag){
                tag.style.display = 'none'
            }else{
                alert('there is no such \'tag_'+ tags[i].id +'\'');
            }
        }
    }
    
    t_tag_event(o.id);
}

function OnMemberLogin(f){
    var cf = new CheckFormSubmit(f);
    if(cf.ChkVal('tbMemberName', '', GetResources(220702, languageType))){
        return false;
    }
    if(cf.ChkVal('tbPassword', '', GetResources(220703, languageType))){
        return false;
    }
    //if(cf.GetObject('tbVerifyCode')){
    //    
    //}
   
    return true;
}

function Sure2Logout(url){
    if(confirm(GetResources(220710))){
        window.top.location.href = url;
    }
}

function ReloadCode(e){ 
    document.getElementById(e).src = '/Global/ValidateCode.aspx?' + tokenKey();
}

/* 增加一个isNoUrl参数，判断是否增加链接 zyh 2007-9-26 */
function ResizeImage(img, width, isNoUrl){
    img.removeAttribute('width');   
    img.removeAttribute('height');
	if(img.width > width){
		img.width = width;
		if(!isNoUrl){
		    img.style.cursor = 'pointer';
		    img.onclick = function(){
			    window.open('/Content/ShowImage.aspx?src='+ img.src);			
		    };
		}
	}
}

/* thumb pic layer control */
function DisplayThumbReset(w){
	var clientWidth = document.body.clientWidth;
	var divPic = document.getElementById('divThumbPic');
    divPic.style.left = (clientWidth - w - 20)+'px';
    setTimeout('DisplayThumbReset('+ w +')', 500);
}
/*
act:if is null then no delete action
*/
function DisplayThumbPic(e, src, act, width, openSrc){
    var hdval = document.getElementById(e);
    var property = '';
    if(openSrc){
        property += ' style="cursor:pointer;" onclick="window.open(\'/Content/ShowImage.aspx?src='+ openSrc + hdval.value +'\')"';
    }
    if(hdval.value.length > 0){
        var html = '';
        if(act != null){
            html += '<div style="position:absolute;"><input type="button" value="X" onclick="Sure2Delete(\''+ act +'\')" /></div>';
        }
        html += '<img src="'+ src + hdval.value +'"'+ property +' onload="ResizeImage(this, '+ width +', true); DisplayThumbReset(this.width);" />';
        
        var divPic = document.getElementById('divThumbPic');
        divPic.style.visibility = 'visible';
        divPic.innerHTML = html;
    }
}

function reloadcode(e){ 
    document.getElementById(e).src = '/Global/ValidateCode.aspx?' + tokenKey();
}

function ResizeWindow(){
    window.moveTo(0,0);
    window.resizeTo(screen.availWidth,screen.availHeight);
}

/* 验证配置地区有效性*/
function CheckRegionConfig(ddlId){
    var obj = document.getElementById(ddlId); 
    return CheckRegion(obj.value, ddlId); 
}

/* 重置配置地区值 */
function ResetRegionConfig(ddlId){
    ResetRegion(ddlId, true);
}

/* 处理配置地区下拉联动 */
function SetRegionConfig(o, maxDepth, ddlId){
    var mainRegionId = ddlId + '_'; 
    var level = parseInt(o.value);
    for(var i = 1; i <= maxDepth; i++){
        var tempObj = document.getElementById(mainRegionId + i);
        if(tempObj){
            if(i == 1 && level > 0){
                tempObj.selectedIndex = 0; 
                tempObj.style.display = '';                 
            }
            else{
                tempObj.style.display = 'none';
            } 
        }
    }
    document.getElementById('hd' + ddlId).value = '';
}

/* 重置地区值 */
function ResetRegion(ddlId, isNotDisplay){
    var hdRegionId = document.getElementById('hd' + ddlId);
    if(hdRegionId){
        var regionIds = hdRegionId.value; 
        var configCount = document.getElementById('hd' + ddlId + 'Count').value; 
        var mainRegionId = ddlId + '_'; 
        if(regionIds.length > 0){
            regionIds = regionIds.substring(0, regionIds.length - 1);
            regionIds = '0' + regionIds;
        }
        var arrIds = regionIds.split(',');
        var len = arrIds.length;

        var i = 1; 
        var tempObj;
        while(i > 0){
            tempObj  = document.getElementById(mainRegionId + i);
            if(tempObj){
                if(i <= len){
                    var cmd = new RemoteCommand('Platform', 'GetRegions');
                    cmd.SetParameter('parentId', arrIds[i-1]);
                    var strRegions = cmd.Execute().ReturnValue;
                    if(strRegions != null){
                        RemoveOption(tempObj); 
                        var regions = new Array();
                        var regionValue;
                        var regionName;
                        regions = strRegions.split('|');
                        for(var j = 0; j < regions.length; j++){
                            regionValue = regions[j].split(',')[0];
                            regionName = regions[j].split(',')[1];
                            tempObj.options[j+1] = new Option(regionName, regionValue);                        
                        }
                        if(i < len){ 
                            tempObj.value = arrIds[i]; 
                        }
                        if(i > configCount && !isNotDisplay){ 
                            tempObj.style.display = ''; 
                        } 
                        if(isNotDisplay){ 
                            if(i <= configCount){
                                tempObj.style.display = ''; 
                            }else{
                                tempObj.style.display = 'none'; 
                            } 
                       } 
                    }
                    else{
                        tempObj.style.display = 'none'; 
                    }
                }else{
                    tempObj.style.display = 'none';
                } 
            }else{
                break;
            }
            i++;
        } 
    }
}

/* 重置地区下拉框的默认值，必填为“== 请选择 ==”，不必填为“不限” */
function resetRegionDefault(s){
    var len = s.length;
    var ddlId = ''; 
    for(var j=0; j<len; j++){
        if(s[j][0].length == 0){
            continue;
        }
        if(s[j][1] == '9' && s[j][0].indexOf('Region') > -1 && s[j][2] == 'True'){
            ddlId = s[j][0];
            break; 
        }  
    }
    if(ddlId.length > 0){ 
        var mainRegionId = ddlId + '_1';   
        var obj =  document.getElementById(mainRegionId);
        if(obj){
            var defaultValue = GetResources(100104, languageType); 
            var childs = obj.parentNode.childNodes;
            for(var i = 0; i < childs.length; i++){ 
                if(childs[i].tagName == 'SELECT'){
                    childs[i].options[0].text = defaultValue;
                }
            } 
        }
    } 
}

/* 验证地区有效性，ddlId：地区控件Id */
function CheckRegion1(ddlId, rid){
    var mainRegionId = ddlId + '_1';
    var obj =  document.getElementById(mainRegionId);
    if(obj){
        var resId = 100730;
        if(rid){
            resId = rid;
        }
        var childs = obj.parentNode.childNodes;
        for(var i = 0; i < childs.length; i++){
            if(childs[i].tagName == 'SELECT'){
                if(childs[i].style.display != 'none' && childs[i].value == 0){
                    alert(GetResources(resId, languageType));
                    childs[i].select;
                    childs[i].focus();
                    return false;
                } 
            }  
        }  
    }
    return true; 
}

/* 验证地区有效性，level：要检验的层数 ddlId：地区控件Id */
function CheckRegion(level, ddlId){
    var mainRegionId = ddlId + '_';
    var obj =  document.getElementById(mainRegionId + level);
    var tempObj;
    for(var i = 1; i < level; i++){
        tempObj = document.getElementById(mainRegionId + i);
        if(tempObj && tempObj.value == 0){
            alert(GetResources(100730, languageType));
            tempObj.select; 
            tempObj.focus(); 
            return false; 
        }
    }  
    if(obj && obj.style.display != 'none' && obj.value == 0){
        alert(GetResources(100730, languageType));
        obj.select; 
        obj.focus(); 
        return false;
    }
    return true;  
}

/* 处理地区下拉联动 */
function SetRegion(currentLevel, level, ddlId, o, isNotStyle){
    var configLevel;
    var mainRegionId = ddlId + '_';
    var parentId = o.value;     
    var nextLevel =  currentLevel + 1;     
    var nextObj =  document.getElementById(mainRegionId + nextLevel);
    if(parentId == 0){
        if(nextObj) {
            nextObj.selectedIndex = 0;
        }
        SetRegionValue(ddlId);
        return;
    }   
        
    SetRegionValue(ddlId);  
    var cmd = new RemoteCommand('Platform', 'GetRegions');
    cmd.SetParameter('parentId', parentId);
    var strRegions = cmd.Execute().ReturnValue;
    if(strRegions != null){
        if(!isNotStyle){
            nextObj.style.display = ''; 
        }else{
            configLevel = document.getElementById(ddlId).value;
            if(currentLevel < parseInt(configLevel)) {
                nextObj.style.display = ''; 
            } 
        } 
        RemoveOption(nextObj); 
        var regions = new Array();
        var regionValue;
        var regionName;
        regions = strRegions.split('|');
        for(var i = 0; i < regions.length; i++){
            regionValue = regions[i].split(',')[0];
            regionName = regions[i].split(',')[1];
            nextObj.options[i+1] = new Option(regionName, regionValue);
        }
    }else{
        if(nextObj) {
            nextObj.selectedIndex = 0;
            if(!isNotStyle){
                nextObj.style.display = 'none';
            }else{
                configLevel = document.getElementById(ddlId).value;
                if(currentLevel >= parseInt(configLevel)) {
                    nextObj.style.display = 'none'; 
                } 
            }  
        }
    } 
    
    function SetRegionValue(ddlId){
         var regionValue = '';
         var tempObj;   
         for(var i = level; i >= nextLevel; i--){
            tempObj =  document.getElementById(mainRegionId + i);
            if(tempObj){
                tempObj.selectedIndex = 0;
                if(!isNotStyle){
                    tempObj.style.display = 'none';
                } 
            }
        }
        
        for(var i = 1; i < nextLevel; i++){
            tempObj =  document.getElementById(mainRegionId + i);
            if(tempObj){
                regionValue += ',' + tempObj.value;
            }
        }
        if(regionValue.length > 0){
            regionValue = regionValue.replace(',0', '');
            if(regionValue.length > 0){
                regionValue = regionValue + ','; 
            } 
        }
        document.getElementById('hd' + ddlId).value = regionValue;
    }
}

/* 共用函数，移除下拉地区的option值 */
function RemoveOption(o){
    if(o){
        var len = o.options.length;
        if(len > 1){
            for(var i = len - 1; i > 0; i--){
                o.options[i] = null; 
           } 
        } 
    } 
}

/* role dropdownlist*/
function InitRoleDropDown(parent, ids, container, isnote){
    var ddlParentRole = document.getElementById(parent);
    var hdRoleIds = document.getElementById(ids);
    
    var note = 'false';
    if(isnote){
        note = GetResources(100104)
    }
    var roleIds = hdRoleIds.value;
    if(roleIds.length > 0){
        if(roleIds.indexOf(',') > 0){
            var splitIds = roleIds.split(',');
            setSelected(ddlParentRole, splitIds[0]);
            SetChildRole(ddlParentRole, container, note);
            var ddlChildRole = document.getElementById('ddlChildRole');
            setSelected(ddlChildRole, splitIds[1]);
        }else{
            setSelected(ddlParentRole, roleIds);
            SetChildRole(ddlParentRole, container, note);
        }
    }else{
        SetChildRole(ddlParentRole, container, note);
    }
    
    function setSelected(ddl, val){
        if(ddl){
            for(var i = 0; i < ddl.length; i++){
                if(ddl[i].value == val){
                    ddl[i].selected = true;
                    break;
                }
            }
        }
    }
}

function SetChildRole(parent, container, note){
    var ddlChildRole = document.getElementById('ddlChildRole');
    if(ddlChildRole == null){
        ddlChildRole = document.createElement('select');
        ddlChildRole.id = 'ddlChildRole';
    }
    ddlChildRole.length = 0;
        
    if(parent.value != 0){
        var cmd = new RemoteCommand('Platform', 'GetRoles');
        cmd.SetParameter('parentId', parent.value);
        
        var retValue = cmd.Execute().ReturnValue;
        if(retValue != null){
            var j = 0;
            var roles = new Array();
            var roleValue;
            var roleName;
            roles = retValue.split('|');
            var len = roles.length;
            var isnote = false;
            
            if(note && note != 'false'){
                isnote = true;
            }
            if(isnote){
                j ++;
                roleValue = '0';
                roleName = note;
                ddlChildRole.options[0] = new Option(roleName, roleValue);
            }
            
            for(var i=0; i < len; i++){
                roleValue = roles[i].split(',')[0];
                roleName = roles[i].split(',')[1];
                ddlChildRole.options[j] = new Option(roleName, roleValue);
                j ++;
            }
        }
    }
    
    if(ddlChildRole.length > 0){
        ddlChildRole.style.display = '';
        var containerObject = document.getElementById(container);
        containerObject.appendChild(ddlChildRole);
        ddlChildRole.style.marginLeft = '2px';
    }else{
        ddlChildRole.style.display = 'none';
    }
}

function SetRoleValue(parent, ids){
    var hdRoleIds = document.getElementById(ids);
    var ddlChildRole = document.getElementById('ddlChildRole');
    if(ddlChildRole && ddlChildRole.length > 0){
        var retValue = ddlChildRole.value;
        if(retValue == 0){
            var ddlParentRole = document.getElementById(parent);
            retValue = ddlParentRole.value;
        }
        hdRoleIds.value = retValue;
    }else{
        var ddlParentRole = document.getElementById(parent);
        hdRoleIds.value = ddlParentRole.value;        
    }
}

function GetValueFromUrl(key){
    var url = String(window.document.location);   
    var rval = "";   
    var strQus = "?";   
    var strAmp = "&";   
    var strEq = "=";   
    var iPos;   

    iPos = url.indexOf(strQus);   

    var strQuery = url.substr(iPos, url.length - iPos);   
    var strLCQuery = strQuery.toLowerCase();   
    var LCKey = key.toLowerCase();   

    iPos = strLCQuery.indexOf(strQus + LCKey + strEq);   
    if(iPos == -1){   
        iPos = strLCQuery.indexOf(strAmp + LCKey + strEq);   
        if(iPos == -1){  
            return rval;
        }
    }   

    rval = strQuery.substr(iPos + key.length + 2,strQuery.length-(iPos + key.length + 2));   
    var iPosAMP = rval.indexOf(strAmp);   

    if(iPosAMP == -1){
        return rval;
    }else{   
        rval = rval.substr(0, iPosAMP);   
    }   

    return rval;   
}

function GetIdFromUrl(key)
{
    var rval = GetValueFromUrl(key);
    if(rval.length > 0){
        return rval; 
    }else{
        return 0; 
    } 
}

function IsValidDate(v){
    var strDate = v.replace(/(^\s+|\s+$)/g, ''); 
    if(strDate == ''){
        return true;
    }

    var t = strDate.replace(/[\d]{4,4}[\-/]{1}[\d]{1,2}[\-/]{1}[\d]{1,2}/g, '');
    if (t == ''){
        var tDate = new Date(strDate.replace(/\-/g, '/'));
        var ar = strDate.split(/[-/:]/);
        if(parseInt(ar[0]) != tDate.getYear() || parseInt(ar[1]) != tDate.getMonth()+1 || parseInt(ar[2]) != tDate.getDate()){
            return false;
        }
    }else{
        return false;
    }

    return true;
}

Date.prototype.DateAdd = function(strInterval, Number) {
    var dtTmp = this;
    switch (strInterval) {
        case 's' :
            return new Date(Date.parse(dtTmp) + (1000 * Number));
        case 'n' :
            return new Date(Date.parse(dtTmp) + (60000 * Number));
        case 'h' :
            return new Date(Date.parse(dtTmp) + (3600000 * Number));
        case 'd' :
            return new Date(Date.parse(dtTmp) + (86400000 * Number));
        case 'w' :
            return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
        case 'q' :
            return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
        case 'm' :
            return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
        case 'y' :
            return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
    }
}

Date.prototype.Format = function(format){
    var o = {
        "M+" : this.getMonth()+1, //month
        "d+" : this.getDate(),    //day
        "h+" : this.getHours(),   //hour
        "m+" : this.getMinutes(), //minute
        "s+" : this.getSeconds(), //second
        "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
        "S" : this.getMilliseconds() //millisecond
    }
    
    if(/(y+)/.test(format)){
        format = format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
    }
    
    for(var k in o){
        if(new RegExp("("+ k +")").test(format))
        format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
    }
    return format;
}

function DateCompare(date1, date2){ 
    var d1 = new Date(date1.replace(/\-/g, "\/ ")); 
    var d2 = new Date(date2.replace(/\-/g, "\/ ")); 
    var flag = true; 

    if(d1 == "NaN " || d2 == "NaN "){
        flag = false;//Is Not Date 
    }

    if(flag && d1.getFullYear() > d2.getFullYear()){ 
        flag = false; 
    } 
    else if(flag && d1.getFullYear() == d2.getFullYear() && d1.getMonth() > d2.getMonth()){ 
        flag = false; 
    } 
    else if(flag && d1.getFullYear() == d2.getFullYear() && d1.getMonth() == d2.getMonth() && d1.getDate() > d2.getDate()){ 
        flag = false; 
    } 
    return flag; 
}

//submit the current form
var isSubmitForm = false;
function SubmitForm(o){
    var form = GetCurrentForm(o);
    if(form != null){
        if(SubmitFormCtrl(form) != false && isSubmitForm == false){
            isSubmitForm = true;
            form.submit();
        }
    }
}

//submit form's control
function SubmitFormCtrl(o){
    alert('The \'SubmitFormCtrl\' method or operation is not implemented.');
    return false;
}
//get the current form
function GetCurrentForm(o){
    if(!o){
        return document.getElementById('aspnetForm');
    }
    var tag = o;
    var name = '';
    var i = 0;
    while(true){
        name = tag.tagName.toLowerCase();
        if(name == 'form'){
            return tag;
        }
        tag = tag.parentNode;

        i++;
        if(i > 20){
            break;
        }
    }
    return null;
}

/*
s：需要格式化的字符
n：小数位数，默认两位
p：是否需要千分位符
*/
function CurrencyFormat(s, n, p){
    if(n == null) n = 2;
    if(/[^-?^0-9\.]/.test(s)) return "invalid";
    if(/[^-?\d+$]/.test(n) || n <= 0) return "invalid";
    var reg_t = "";
    var zero = "";
    for(i = 0; i < n ; i++ ){
        reg_t = reg_t + "\\d";
        zero = zero + "0";
    }
    var reg = "/(\\d*\\." + reg_t + ")\\d*/";

    s=s.replace(/^(-?\d*)$/,"$1.");
    s=(s+zero).replace(eval(reg),"$1");
    if(p){
        var reg2 = "/,(" + reg_t + ")$/";
        s=s.replace(".",",");
        var re=/(\d)(\d{3},)/;
        while(re.test(s))
            s=s.replace(re,"$1,$2");
        s=s.replace(eval(reg2),".$1");
    }
    return s.replace(/^\./,"0.")
}

/* 计算字符长度,中文表示两个字符 */
function CalcuCharLength(v){
    var l = 0;
    var m = 0;
    var ts;
    var tscode;
    for(i = 0; i < v.length; i++){ 
        ts = v.substring(i); 
        tscode = v.charCodeAt(i); 
        
        if(tscode<19968){
            l++;
        }else{
            m += 2;
        }
    }
    var s = l + m;
    return s;
}

/* emotion operator */
function StoreCaret(o) {
	if (o.createTextRange) {
		o.caretPos = document.selection.createRange().duplicate(); 
	}
}

function InsertEmote(o, emot){
	o.focus();
	emot = '[:s' + emot + ']'
	if (o.createTextRange && o.caretPos) {
		var caretPos = o.caretPos;
		caretPos.text = emot;
	}else if(o.selectionStart){
		var rangeStart = o.selectionStart;       
		var rangeEnd = o.selectionEnd;       
		var tempStr1 = o.value.substring(0,rangeStart);       
		var tempStr2 = o.value.substring(rangeEnd);     
		o.value = tempStr1 + emot + tempStr2;
	}else{
		o.value = emot;
	}
}

/* 用于显示站中站流量统计图片 */
function LoadCounts(folderPath, counts){
    var len = counts.length;
    var minLen = 2;
    if(folderPath.trim().length==0){
        folderPath = '1';
    }
    if(len>minLen){
        for(var i=0;i<len;i++){
            document.write('<img src="/Global/images/counter/' + folderPath + '/' + counts.substr(i,1) + '.gif"  align="absmiddle"/>');
        }
    }else{
        for(var i=0;i<minLen -len;i++){
            document.write('<img src="/Global/images/counter/' + folderPath + '/0.gif" align="absmiddle" />');
        }
        for(var i=0;i<len;i++){
            document.write('<img src="/Global/images/counter/' + folderPath + '/' + counts.substr(i,1) + '.gif" align="absmiddle"/>');
        }
    }
}

function SetCookie(name, value, expire){
    var exp = new Date();
    if(!expire){
        expire = 20;
    }  
    exp.setTime(exp.getTime() + ( expire * 60 * 1000 ));
    document.cookie = name + '=' + escape(value) + '; expires=' + exp.toGMTString();
}
function GetCookie(name) {
    var arg = name + '=';
    if (document.cookie.length > 0) {
        var offset = document.cookie.indexOf(arg);
        var end = -1;
        if(offset != -1) {
            offset += arg.length;
            end = document.cookie.indexOf(";", offset);
            if (end == -1){
                end = document.cookie.length;
            }
            return unescape(document.cookie.substring(offset, end))
        } 
    }
    return '';
}
function DelCookie(name){
    var exp = new Date();
    exp.setTime (exp.getTime() - 1);
    var cval = GetCookie(name);
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
function AttachClickEvent(o, u){
    var obj = document.getElementById(o);
    if(obj){
        obj.attachEvent("onclick",  function() { ReWriteUrl(u) });
    }
}
function T(n, e){
    document.getElementById(e).className = 'text text' + n;
}
function SearchSubmit(o, url){
    o.form.action = url;
}
function AddFavorite(url, name){
    if(document.all){
        window.external.addFavorite(url, name);
    }else if(window.sidebar){
        window.sidebar.addPanel(name, url, '');
    }
}
function SetHomepage(homeUrl){
    if(document.all){
        document.body.style.behavior='url(#default#homepage)';
        document.body.setHomePage(homeUrl);
    }else if(window.sidebar){
        if(window.netscape){
            try{  
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            }
            catch (e){}
        } 
        var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
        prefs.setCharPref('browser.startup.homepage', homeUrl);
    }
}
