///////////////////////////////////////////////
//---------简单的Ajax功能实现-------------
// 定义XMLHttpRequest
if (window.ActiveXObject && !window.XMLHttpRequest) {
	window.XMLHttpRequest=function() {
    	return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1)?'Microsoft.XMLHTTP':'Msxml2.XMLHTTP');
	}
};
// url处理函数：取得主域名
function url2www(url){
	var str=url;
	return str.replace(/https?:\/\/([a-zA-Z\.]+).+$/,"$1");
}
// url处理函数：取得带协议名的主域名
function url2www1(url){
	var str=url;
	return str.replace(/(https?:\/\/[a-zA-Z\.]+).+$/,"$1");
}
// url处理函数：取得路径
function url2path(url){
	var str=url;
	return str.replace(/(https?:\/\/[^\?]+)\?(.+$)/,"$1");
}
// url处理函数：取得查询条件
function url2query(url){
	var str=url;
	return str.replace(/(https?:\/\/[^\?]+)\?(.+$)/,"$2");
}
// 处理返回的结果
function handle(e,value){
	//alert('value : '+value);
	//alert('e : '+e);
	//alert('e.type : '+e.type);
	//alert('e.name : '+e.name);
	//alert('e.id: '+e.name);
	if(!e)
		return;
		
	if(e.type && (e.type=='select-one' || e.type=='select-multiple'))
		buildSelect(e,value);
	else
	    e.innerHTML=value;
}

////////////////////////////////////////////
//查看对象属性
function trace(obj, allAttrs) {
    var str = '';
    for (var i in obj) {
        if (allAttrs == true) {
            str += i + ": " + obj[i] + "<br />\n\r";
        }
        else if (obj[i]) {
            str += i + ": " + obj[i] + "<br />\n\r";
        }
    }
    return str;
}

////////////////////////////////////////////
// 创建select
function buildSelect(es,str){
	//alert('**buildSelect**'+str.charAt(0)+str.charAt(2));
	var s=str.substring(2);
	es.innerHTML='';
	if(s.indexOf('&')>-1){
		var ops=s.split('&');
		for(var i=0;i<ops.length;i++){
			//alert(ops[i]);
			var nv=ops[i].split('=');
			es.options[i]=new Option(nv[1],nv[0]);
		}
	}else if(s.indexOf('=')>-1){
			var nv=s.split('=');
			es.options[i]=new Option(nv[1],nv[0]);
	}
}
// 抓取页面基础方法
function ajax(el,url,method){
	var req=new XMLHttpRequest();
	if (req){
		req.onreadystatechange=function() {
        	if(req.readystate<4){
           		el.style.color='green';
				el.innerHTML='&nbsp;&nbsp;数据读取中...';
           	}
			if (req.readyState==4 && req.status==200){
            	el.style.color='black';
				handle(el,req.responseText);
         	}
         }
		if(method=='post'){
			req.open(method,url2path(url));
			req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			req.send(url2query(url));
		}else{
			req.open(method,url,true);
    	    req.send(null);
		}
     }
}
// 抓取页面基础方法,在firefox有问题
function ajaxText(url,method){
	var req=new XMLHttpRequest();
	if (req){
		req.onreadystatechange=function() {
			if (req.readyState==4 && req.status==200){
				//alert(req.readyState);
				document.write(req.responseText);
         	}
         }
		if(method=='post'){
			req.open(method,url2path(url));
			req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			req.send(url2query(url));
		}else{
			//alert(url);
			req.open(method,url,true);
    	    req.send(null);
		}
     }
}
// 抓取页面简化方法(简化)
function ajaxG(el,url){
	ajax(el,url,'get');
}
function ajaxP(el,url){
	ajax(el,url,'post');
}
function ajaxTextG(url){
	ajaxText(url,'get');
}
function ajaxTextP(url){
	ajaxText(url,'post');
}
//////////////////////////////////////////////////////
// -------  编码解码文件 -------------------
//html编码
function htmlEncode(text){
	if ( typeof( text ) != "string" )
		text = text.toString() ;

	text = text.replace(/&/g, "&amp;") ;
	text = text.replace(/"/g, "&quot;") ;
	text = text.replace(/</g, "&lt;") ;
	text = text.replace(/>/g, "&gt;") ;
	text = text.replace(/'/g, "&#39;") ;

	return text ;
}

///////////////////////////////////////////////
// -------  一些非文字录入控件的状态控制 -------------------
//根据value设定radio的checked状态
function setRadios(radios,value){
	//alert("radios["+radios.length+"]= "+value);
	if(!radios || radios.length<1)
		return;
		
	for(i=0;i<radios.length;i++)
		if(("|"+value+"|").indexOf("|"+radios[i].value+"|")>-1)
			radios[i].checked=true;
}

//根据value设定checkbox的checked状态,value为用|区隔的值串
function setCheckboxs(checkboxs,value){
	//alert("checkboxs["+checkboxs.length+" ]= "+value);
	if(!checkboxs || checkboxs.length<1)
		return;
		
	for(i=0;i<checkboxs.length;i++)
		if(("|"+value+"|").indexOf("|"+checkboxs[i].value+"|")>-1)
			checkboxs[i].checked=true;
}
//根据value设定checkbox的checked状态,value为用|区隔的值串
function setCheckbox(checkbox,value){
	if(checkbox && checkbox.type && value==checkbox.value)
			checkbox.checked=true;
}
//根据value设定select的checked状态,value为用|区隔的值串
function setSelect(select,value){
	//trace(select,true);
	if(!select || !select.options || select.options.length<1)
		return;
		
	for(i=0;i<select.options.length;i++){
		//alert(value+"  =  "+select.options[i].value);
		if(("|"+value+"|").indexOf("|"+select.options[i].value+"|")>-1)
			select.options[i].selected=true;
	}
}
//根据value设定text的状态,value为值串
function setText(text,value){
	//alert("text["+text.value+" ]= "+value);
	if(!text)
		return;
	else
		text.value=value;
}
// 自动判断元素类型，然后调用相应的函数
function setItem(e,value){
	if(!e || !e[0] || !e[0].type)
		return;
	if(e.type && e.type.indexOf('checkbox')>-1)
		setCheckbox(e,(value));
	else if(e[0].type.indexOf('checkbox')>-1)
		setCheckboxs(e,("|"+value+"|"));
	else if(e.type && e.type.indexOf('radio')>-1)
		setRadios(e,("|"+value+"|"));
	else if(e[0].type.indexOf('radio')>-1)
		setRadios(e,("|"+value+"|"));
	else if(e[0].type.indexOf('select')>-1)
		setSelect(e[0],("|"+value+"|"));
	else 
	    setText(e[0],value);
}
function setItemByName(name,value){
	var e=document.getElementsByName(name);
	setItem(e,value);
}

//设置td内值
function setTd(td,value){
	if(!td)
		return;
	
	td.innerText=value;
}
// 设置td
function setTdByName(name,value){
	var td=document.getElementById(name);
	setTd(td,value);
}

//清除给定名称的元素的所有空格
function alltrim(ename){
	var e=document.getElementById(ename);
	if(!e)
		return;
		
	if(e.value)
		e.value=e.value.replace(/(s*)/g,"");
	else if(e.innerText)
		e.innerText=e.innerText.replace(/(s*)/g,"");
	else if(e.innerHTML)
		e.innerHTML=e.innerHTML.replace(/(s*)/g,"");
}
//清除一个给定名称的元素的前后空格
function trim(ename){
	var e=document.getElementById(ename);
	if(!e)
		return;
		
	if(e.value)
		e.value=e.value.replace(/(^\s*)|(\s*$)/g,"");
	else if(e.innerText)
		e.innerText=e.innerText.replace(/(^\s*)|(\s*$)/g,"");
	else if(e.innerHTML)
		e.innerHTML=e.innerHTML.replace(/(^\s*)|(\s*$)/g,"");
}
//增加某个元素的内容
function add(ename,str){
	var e=document.getElementById(ename);
	if(!e)
		return;
		
	if(e.value)
		e.value=e.value+str;
	else if(e.innerText)
		e.innerText=e.innerText+str;
	else if(e.innerHTML)
		e.innerHTML=e.innerHTML+str;
}
///////////////////////////////////////////////
function selectAll(target,b){
	if(!target)
		return false;
		
	if(target.options)
		if(target.options.length<1)
			return false;
		else
			for(var i=0; i<target.options.length; i++)
				target.options[i].selected=b;
	else if(target.type && target.type=='checkbox')
		target.checked=b;
	else if(target[0] && target[0].type=='checkbox')
		for(var i=0; i<target.length; i++)
			target[i].checked=b;
	return true;
}
function move(action,source,target){
	if(!action || !source || !target)
		return;

	//alert('source.selectedIndex'+source.selectedIndex);
	//alert('target.selectedIndex'+target.selectedIndex);
	if('>'==action){
		var e=source.options[source.selectedIndex];
		//alert(e.value+" : "+e.innerText);
		target.options.add(new Option(e.innerText,e.value));
		//alert(target.innerHTML);
		source.options.remove(source.selectedIndex);
	}else if('<'==action){
		var e=target.options[target.selectedIndex];
		//alert(e.value+" : "+e.innerText);
		source.options.add(new Option(e.innerText,e.value));
		//alert(target.innerHTML);
		target.options.remove(target.selectedIndex);
	}else if('>>'==action){
	}else if('<<'==action){
	}
}
///////////////////
// 把中文数字转成阿拉伯数字(仅处理0-99)
function arab(str){
	//alert("arab(str)="+str);
	var num=0;
	if(str){
		var CNUM="十一二三四五六七八九";
		for(var i=0;i<str.length;i++){
			//alert(i+" : "+str.charAt(i));
			j=CNUM.indexOf(str.charAt(i));
			if(j<0)
				return str;
			
			if(j>0)
				num+=j;
			else if(i==0)
				num+=10;
			else
				num*=10;
		}
	}
	return num;
}
//////////////////////
//控制某些区域的显示或隐藏，便于输入数据
function shift(es,hs,ss){
	var e=document.getElementById(es);
	if(e.className=='hidden'){
		e.className='show';
		if(ss)event.srcElement.innerHTML=ss;
	}else{
		e.className='hidden';
		if(hs)event.srcElement.innerHTML=hs;
	}
}
function shiftAB(checked,hs,ss){
	//alert(checked+' - '+hs+' - '+ss);
	if(checked){
		document.getElementById(hs).style.display='none';
		document.getElementById(ss).style.display='block';
	}else{
		document.getElementById(hs).style.display='block';
		document.getElementById(ss).style.display='none';
	}
}
function tabbed(es,hs,ss){
	document.getElementById(hs).className='infos hidden';
	document.getElementById(ss).className='infos';
	event.srcElement.className='';
	document.getElementById(es).className='tab';
}
/////////////////////////////////////
// TABLE的一些操作
function clearRow(nr){
	for(var i=0;i<nr.cells.length;i++){
		var nc=nr.cells[i];
		//trace(nc.firstChild);
		if(nc.lastChild.tagName=='INPUT'){
			nc.lastChild.value='';
		}
	}
}
function addRow(es){
	var e=document.getElementById(es);
	var row=e.rows[e.rows.length-1];
	var nr=e.insertRow();
	for(var c=0;c<row.cells.length;c++){
		var nc=nr.insertCell(c);
		nc.className=row.cells[c].className;
		nc.innerHTML=(nc.className=='hidden')?'':row.cells[c].innerHTML;
	}
	clearRow(nr);
}
function delRow(es){
	var e=document.getElementById(es);
	if(e.rows.length>1)
		e.deleteRow(e.rows.length-1);
}
function table2str(es){
	var ss="";
	var e=document.getElementById(es);
	for(var i=1;i<e.rows.length;i++){
		//alert(e.rows[i].cells[1].innerText);
		if(e.rows[i].cells[1].innerText!=''){
			for(var j=0;j<e.rows[i].cells.length;j++)
				ss+=e.rows[i].cells[j].innerText+"|";
			ss+=";";
		}
		//else alert('数据为空');
	}
	//alert(ss.replace(/\r\n/g,"<br/>"));
	return ss.replace(/\r\n/g,"<br/>");
}
function str2table(es,ss){
	//alert(ss);
	var rs=ss.split("|;");
	var cs="";
	var e=document.getElementById(es);
	for(var i=0;i<rs.length-1;i++){
		cs=rs[i].split("|");
		var nr=e.insertRow();
		for(var j=0;j<cs.length;j++)
			nr.insertCell(j).innerHTML=cs[j];
		nr.cells[0].className='hidden';
	}
}
////////////////////////////////////////////
// 获取FCKEditor中的内容: content为Editor实例的ID 
function getEditorContents(field){ 
   var oEditor = FCKeditorAPI.GetInstance(field); 
   //alert(oEditor.innerHTML);
   //alert(oEditor.GetXHTML(true)); 
} 
  
// 向编辑器插入指定代码 
function insertHTMLToEditor(field,codeStr){ 
   var oEditor = FCKeditorAPI.GetInstance(field); 
   if (oEditor.EditMode==FCK_EDITMODE_WYSIWYG){ 
     oEditor.InsertHtml(codeStr); 
   }else{ 
     return false; 
   } 
} 
  
// 统计编辑器中内容的字数 
function getLength(field){ 
   var oEditor = FCKeditorAPI.GetInstance(field); 
   var oDOM = oEditor.EditorDocument; 
   var iLength ; 
   if(document.all){ 
     iLength = oDOM.body.innerText.length; 
   }else{ 
     var r = oDOM.createRange(); 
     r.selectNodeContents(oDOM.body); 
     iLength = r.toString().length; 
   } 
   //alert(iLength); 
} 
  
// 执行指定动作 
function ExecuteCommand(field,commandName){ 
   var oEditor = FCKeditorAPI.GetInstance(field) ; 
   oEditor.Commands.GetCommand(commandName).Execute() ; 
} 
  
// 设置编辑器中内容 
function SetContents(field,codeStr){ 
   var oEditor = FCKeditorAPI.GetInstance(field) ; 
   //alert('SetContents()before：'+oEditor.GetXHTML(true)+codeStr);
   oEditor.SetHTML(codeStr); 
   alert('SetContents()after：'+oEditor.GetHTML());
}
//加入收藏
function AddFavorite(sURL, sTitle){
	try{
		window.external.addFavorite(sURL, sTitle);
    }catch (e){
        try{
            window.sidebar.addPanel(sTitle, sURL, "");
        }catch (e){
            alert("加入收藏失败，请使用Ctrl+D进行添加");
        }
    }
}
//设为首页
function SetHome(obj,vrl){
	try{
		obj.style.behavior='url(#default#homepage)';obj.setHomePage(vrl);
	}catch(e){
		if(window.netscape) {
        	try {
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");  
			}catch (e){
				alert("此操作被浏览器拒绝！\n请在浏览器地址栏输入“about:config”并回车\n然后将[signed.applets.codebase_principal_support]设置为'true'");  
			}
            var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
            prefs.setCharPref('browser.startup.homepage',vrl);
		}
	}
}