///////////////////////JS Class Lib///////////////////////////////////
//
//JS类库 Beta ZWD Gloot 
//Email :WeisNet@gmail.Com 仅支持编码 GB2312
//BLOG: http://blog.sina.com.cn/tecz
//QQ 345268267
//////////////////////////////////////////////////////////
//小数点两位
//var a=0.326598878
//document.write(a.toFixed(2))  ==>0.33
if(!Number.prototype.toFixed)   
{
	Number.prototype.toFixed=function(num)   
	{
		with(Math) return round(this.valueOf()*pow(10,num))/pow(10,num);   
	}   
}

function checkByteLength(str,minlen,maxlen) 
{
	if (str == null) return false;
	var l = str.length;
	var blen = 0;
	for(i=0; i<l; i++) 
	{
		if ((str.charCodeAt(i) & 0xff00) != 0) 
		{
			blen ++;
		}
		blen ++;
	}
	if (blen > maxlen || blen < minlen) 
	{
		return false;
	}
	return true;
}

String.prototype.trim = function()
{
	return this.replace(/(^\s*)|(\s*$)/g,'');
}

////////////////////////////////////////////////
//
// JS,Main的基类
//
////////////////////////////////////////////////
BaseClass = function()
{
	this.chkInput          =           chkInput; //检测文件框是否有特定的值,eg:/“请输入查询内容!” /“请输入用户名.”
	this.ModalDialog       =           ModalDialog; //弹出模态窗口
	this.WindowOpen        =           WindowOpen; //弹出窗口 window.open();
	this.Open_Close        =           Open_Close; //点击展开
	this.PageInit          =           PageInit; //初始化界面
	this.HtmlEditor        =           HtmlEditor; //Html 编辑器
	this.AddToSelect       =           AddToSelect; //添加地址
	this.AddToSelect_ID    =           AddToSelect_ID ; //包含ID
}

////////////////////////////////////////////
//主类
//////////////////////////////////////////////
function Main()
{
	this.c=BaseClass;
	this.c();
}


function chkInput(inName,num,wStr)
{
	if (num == 1)
	{
		if (inName.value.replace(/(^\s*)|(\s*$)/g,'') == wStr) {inName.value="";}
	} 
	else 
	{
		if (inName.value.replace(/(^\s*)|(\s*$)/g,'') == "") inName.value = wStr; 
	}
}


function ModalDialog(pName,diaLogName,diaWidth,diaHeight)
{
	var obj = null;
	if (document.all)
	{
		obj=window.showModalDialog(pName,diaLogName,'help=0;status=0;dialogWidth='+diaWidth+';dialogHeight='+diaHeight+''); //px
	}
	else
	{
		obj = window.open(pName,null,'width='+diaWidth.replace('em','')+',height='+diaHeight.replace('em','')+',modal=yes');
		//var evt = SearchEvent();
		//window.onclick = function() {obj.focus();}
		//evt.cancelBubble = true;
	}
	return obj;
}

function WindowOpen(pName,winName,width,height)
{
	window.open(pName,winName,'resizable=no,scrollbars=no,titlebar=no,toolbars=no,margin=0,status=0,width='+width+',height='+height);
}


///////////////////////////////////////////
//
//id为TR 的 ID 如:<tr id="opencloseID" > <td >&nbsp; </td></tr>
//
///////////////////////////////////////////
function Open_Close(id)
{  //id属性,style="DISPLAY:none"
	if (id.style.display=='none')
	{
		id.style.display='';
	}
	else
	{
		id.style.display='none';
	}
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//复选框全选
function CheckBoxSelectAll()
{
	var obj=document.getElementsByTagName("INPUT");
	for(var i=0;i<obj.length;i++)
		if(obj[i].type=="checkbox")
		{
			obj[i].checked=true;
			//setColors(obj[i]);
		}
}
//复选框全取消
function CheckBoxUNSelectAll()
{
	var obj=document.getElementsByTagName("INPUT");
	for(var i=0;i<obj.length;i++)
		if(obj[i].type=="checkbox")
		{
			obj[i].checked=false;
			//setColors(obj[i]);
		}
}
//复选框反选
function CheckBoxReverseSelect()
{
	var obj=document.getElementsByTagName("INPUT");
	for(var i=0;i<obj.length;i++)
		if(obj[i].type=="checkbox")
		{
			obj[i].checked=!obj[i].checked;
			//setColors(obj[i]);
		}
}
//--------------------------------------------------------------------------
function CheckBoxSetColor(obj)
{
	if(obj.type && obj.type=="checkbox")
		if(obj.parentElement && obj.parentElement.parentElement && obj.parentElement.parentElement.tagName == "TR" && obj.checked)
			obj.parentElement.parentElement.style.backgroundColor	=	"#FFFFCC";
	else
		obj.parentElement.parentElement.style.backgroundColor	=	"#FFFFFF";
}
//**********************************************************
function setColors(obj) 
{
	//alert(obj.name);
	if (obj.checked) 
	{
		obj.parentElement.parentElement.style.background='#f0fff0';
		//obj.parentElement.parentElement.
	} 
	else 
	{
		obj.parentElement.parentElement.style.background='#fff';
	}
}
//**********************************************************
function CheckIsChecked(Key)
{
	var obj	=	document.getElementsByName(Key);
	for(var i=0;i<obj.length;i++)
		if(obj[i].checked)
			return true;
	alert("请至少选择一个");
	return false;	
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//地址栏参数检测 var mNum=GetParaStr("Mnum");
//
//strname是参数名称 http://domain/pp?cid=5
//var getCid=GetParaStr("cid") ; getCid=5
//
///////////////////////////////////////////////
function GetParaStr(strname)
{
	var hrefstr,pos,parastr,para,tempstr;
	hrefstr = window.location.href;
	pos = hrefstr.indexOf("?")
	parastr = hrefstr.substring(pos+1);
	para = parastr.split("&");
	tempstr="";
	for(i=0;i<para.length;i++) 
	{
		tempstr = para[i];
		pos = tempstr.indexOf("=");
		if(tempstr.substring(0,pos) == strname)
		{
			tempstr = tempstr.substring(pos+1);
			pos = tempstr.indexOf("#");
			if (pos > 0)
				return tempstr.substring(0,pos);
			return tempstr;
		}
	}
	return '';
}

//初始化页信息.
function PageInit()
{
	var scrWidth = screen.width;
	var getUserCookie = document.cookie;
}

//<iframe id="ifr" SCROLLING ="yes"></iframe>
//<body onload="HtmlEditor(ifr,200,400)">
function HtmlEditor(ifr,ifrWidth,ifrHeight)
{
	ifr.width = 500;
	ifr.height = 400 ;
	ifr.document.open();
	ifr.document.close();
	ifr.document.designMode="on";    
}

//////////////////////////////////////////////////////
//
//SelectN是select控件名称,n_selected是表示第几个selected,values要填充的数据
//
//////////////////////////////////////////////////////
function AddToSelect(selectN,n_selected,values) 
{
	if (values.replace(/(^\s*)|(\s*$)/g,'').length==0) 
	{
		return
	}
	var str = values.replace(/(^\s*)|(\s*$)/g,'');
	var SplitStr = str.split("|");
	var i;
	for (i=0;i<SplitStr.length;i++) 
	{
		if (SplitStr[i]=='') 
		{
			return;
		}
	}
	//alert(SplitStr[2]);
	selectN.options.length=0;
	for (i=0;i<SplitStr.length;i++) 
	{
		selectN.options.add(new Option(SplitStr[i],i));
		if (i==n_selected) 
		{
			selectN.options[i].selected=true;
		}
	}
}

function AddToSelect_ID(selectN,n_selected,values,vids)
{
	if (values.replace(/(^\s*)|(\s*$)/g,'').length==0) 
	{
		return
	}

	if (vids.replace(/(^\s*)|(\s*$)/g,'').length==0) 
	{
		return;
	}
	var str = values.replace(/(^\s*)|(\s*$)/g,'');
	var sid = vids.replace(/(^\s*)|(\s*$)/g,'');

	var SplitStr = str.split("|");
	var SplitSid = sid.split("|");

	if (SplitStr.length!=SplitSid.length)
	{
		return;
	}

	var len = SplitStr.length;
	var i;
	for (i=0;i<len;i++) 
	{
		if (SplitStr[i]=='') 
		{
			return;
		}
	}
	//alert(SplitStr[2]);
	selectN.options.length=0;
	for (i=0;i<len;i++) 
	{
		selectN.options.add(new Option(SplitStr[i],SplitSid[i]));
		if (i==n_selected) 
		{
			selectN.options[i].selected=true;
		}
	}
}

function loadCfr(selectN,n_selected,hast)
{
	for (i=0;i<hast.length;i++) 
	{
		selectN.options.add(new Option(hast[i].key,hast[i].value));
		if (i==n_selected) 
		{
			selectN.options[i].selected=true;
		}
	}
} 

function LoadAddr2(s,n)
{ //待用
	var Web = new Main();
	var AddrArr = '地区不限|厦门|泉州|福州|漳州|莆田|三明|南平|龙岩|其他';
	Web.AddToSelect(s,n,AddrArr); 
}

function loadBank(s,n)
{
	var Web = new Main();
	var bankStr = '请选择|中国银行|农业银行|建设银行|兴业银行|工商银行|邮政储蓄|交通银行|招商银行|民生银行|中信银行';
	Web.AddToSelect(s,n,bankStr); 
}


function hashtable(key, value)
{
	this.key = key;
	this.value  = value;
}

//加载地区
function LoadAddr(s,n)
{
	var arr = new Array();
	arr[arr.length] = new hashtable("地区不限","0");
	arr[arr.length] = new hashtable("厦门","1");
	arr[arr.length] = new hashtable("泉州","2");
	arr[arr.length] = new hashtable("福州","3");
	arr[arr.length] = new hashtable("漳州","4");
	arr[arr.length] = new hashtable("莆田","5");
	arr[arr.length] = new hashtable("三明","6");
	arr[arr.length] = new hashtable("南平","7");
	arr[arr.length] = new hashtable("龙岩","8");
	arr[arr.length] = new hashtable("上海","10");
	arr[arr.length] = new hashtable("北京","11");
	arr[arr.length] = new hashtable("其他","9");
	loadCfr(s,n,arr);
}

//加载行业
function ComHangYe(s,n) 
{
	var arr = new Array();
	arr[arr.length] = new hashtable("党政机关,事业单位","1");
	arr[arr.length] = new hashtable("计算机,通讯,互联网","2");
	arr[arr.length] = new hashtable("广告企划,新闻出版,影视制作","3");
	arr[arr.length] = new hashtable("交易,培训,咨询","4");
	arr[arr.length] = new hashtable("金融投资,证卷,酒店,旅游,娱乐","5");
	arr[arr.length] = new hashtable("服饰鞋帽,纺织印染,箱包皮具","6");
	arr[arr.length] = new hashtable("房地产,置业,物业,保安","7");
	arr[arr.length] = new hashtable("建筑,装饰,家具,水暖洁具","8");
	arr[arr.length] = new hashtable("电子电器,文具玩具","9");
	arr[arr.length] = new hashtable("日用品,工艺品 ,文具玩具","10");
	arr[arr.length] = new hashtable("汽车摩托车,交通运输,物流","11");
	arr[arr.length] = new hashtable("食品饮料,餐饮农业","12");
	arr[arr.length] = new hashtable("医疗保健,卫生用品","13");
	arr[arr.length] = new hashtable("化工橡塑,化学品","14");
	arr[arr.length] = new hashtable("家政服务","15");
	arr[arr.length] = new hashtable("其他","99");
	loadCfr(s,n,arr);
}

//公司性质
function loadComNature(s,n)
{
	var ValStr = "-----不限-----|外资企业|合资企业|私营企业|民营企业|股份制企业|集体企业|集体事业|乡镇企业|行政机关|社会团体|事业单位|跨国企业(集团)|国有企业|其它";
	Web.AddToSelect(s,n,ValStr);
}

//检验是否是数字型数据
function isDigital(obj)
{
	if (obj.value.trim() == '' || obj.value.trim().indexOf('.')==0 || isNaN(obj.value.trim()))
	{
		alert('请输入数字型数据!');
		obj.focus();
		return false;
	}
	return true;
}

function cfrEmail(obj)
{
	var RegMail = /^[_a-zA-Z0-9\-]+(\.[_a-zA-Z0-9\-]*)*@[a-zA-Z0-9\-]+([\.][a-zA-Z0-9\-]+)+$/;
	if (!RegMail.test(obj.value.trim()))
	{
		alert('邮箱格式出错!');
		obj.focus();
		return false;
	}
	return true;
}

function isDate(obj,ty)
{
	///^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 2008-05-06 12:30:46
	var patn ; ///^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; //2007-08-09
	if (ty.toLowerCase() == 'long')
		patn = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
	else
		patn = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; 
	if (!patn.test(obj.value.trim()))
	{
		alert('时间格式错误!');
		obj.focus();
		return false;
	}
	return true;
}

//判断浏览器版本
function ChkPlf(c,Pform)
{
	if(document.all)
		return document.all.item(c);
	else
	{
		if (document.getElementById)
			return document.getElementById(c);
		else 
		{ 
			return Pform.elements[c]; 
		}
	}
	return null;
}


function evnt(evt)
{ 
	return evt = evt?evt:(window.event?window.event:null);
}

function SearchEvent() 
{ 
	if(document.all)
		return window.event;
	func=SearchEvent.caller; 

	while(func!=null) 
	{ 
		var arg0=func.arguments[0]; 
		//alert(arg0);
		if(arg0) 
		{ 
			//alert(arg0.constructor);
			//if(arg0.constructor==MouseEvent || arg0.constructor==Event || arg0.constructor==KeyboardEvent) // 如果就是event 对象 
			return arg0; 
		} 
		func=func.caller; 
	} 
	return null; 
}

function $X()
{
	if (document.all)
	{
		return event.clientX;
	}
	else
	{
		var evt = SearchEvent();
		return evt.pageX;
	}
}

function $Y()
{
	if (document.all)
	{
		return event.clientY;
	}
	else
	{
		var evt = SearchEvent();
		return evt.pageY;
	}
}

function srcState()
{
	var evt = SearchEvent();
	var El = null;
	if (typeof evt != 'undefined')
	{
		if (document.all)
			El = evt.srcElement.id;
		else
			El = evt.target.id; 
	}
	return El;
}

function srcType()
{
	var evt = SearchEvent();
	var El = null;
	if (typeof evt != 'undefined')
	{
		if (document.all)
			El = evt.srcElement.type;
		else
			El = evt.target.type; 
	}
	return El;
}

if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement)
{

	HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
	{
		switch (where)
		{
			case 'beforeBegin':
				this.parentNode.insertBefore(parsedNode,this)
				break;
			case 'afterBegin':
				this.insertBefore(parsedNode,this.firstChild);
				break;
			case 'beforeEnd':
				this.appendChild(parsedNode);
				break;
			case 'afterEnd':
				if (this.nextSibling) this.parentNode.insertBefore(parsedNode,this.nextSibling);
				else this.parentNode.appendChild(parsedNode);
				break;
		}
	}

	HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
	{
		var r = this.ownerDocument.createRange();
		r.setStartBefore(this);
		var parsedHTML = r.createContextualFragment(htmlStr);
		this.insertAdjacentElement(where,parsedHTML)
	}

	HTMLElement.prototype.insertAdjacentText = function(where,txtStr)
	{
		var parsedText = document.createTextNode(txtStr)
		this.insertAdjacentElement(where,parsedText)
	}

}


//selection
function returnSelection(Edit)
{
	if (document.selection)
		return Edit.document.selection.createRange()
	else if (window.getSelection)
		return Edit.window.getSelection()
	else if (document.getSelection)
		return Edit.document.getSelection()
	else
		return null;
}

function getElxy(e)
{
	var top=e.offsetTop; 
	var left=e.offsetLeft; 
	var width=e.offsetWidth;
	var height=e.offsetHeight;
	while(e=e.offsetParent)
	{ 
		top+=e.offsetTop; 
		left+=e.offsetLeft; 
	} 
	return {Left:left,Top:top};
}