var $ = function(id){
	return document.getElementById(id);
}


function chkBrowser(){
	this.type	= null
	this.ver	= null
	var userAgent = navigator.userAgent.toLowerCase();
	var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
	var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
	var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
	var is_mac = userAgent.indexOf('mac') != -1;
	var arrTmp = Array(Array(is_opera,"OPERA"),Array(is_moz,"FIREFOX"),Array(is_ie,"MSIE"),Array(is_mac,"MAC"))
	for (var i=0;i<=arrTmp.length-1;i++){
		if(arrTmp[i][0]!=false){
			this.type	= arrTmp[i][1]
			this.ver	= Number(arrTmp[i][0])
		}
	}
}


//取字节长度
function LenB(s){
	var ss;
	var c=0;
	for (i=0;i<=s.length-1;i++) {
		ss=s.substring(i,i+1);
		if (ss>"z") c++;
		c++; 
	}
	return c
}

//获取对象
function GetById(id) {
	if (document.getElementById) {
		return document.getElementById(id);
	} else if (document.all) {
		return document.all[id];
	} else if (document.layers) {
		return document.layers[id];
	} else {
		return null;
	}
}

//点击确认，通常用于点击确认
function CheckClick(msg){
	if(confirm(msg)){
		event.returnValue=true;
		return true
	}else{
		event.returnValue=false;
		return false
	}
}
function CheckDel(){
	return CheckClick("确定要删除该记录吗？\n\n提示：记录被删后无法恢复。")
}

//统计字符串中出现多少次指定字符
function CountSpectialStr(strString,strStr){
	var i,retCount=0
	strString=Trim(strString)
	for (i=0;i<=strString.length-1;i++){
		if (strString.charAt(i)==strStr) retCount++
	}
	return retCount;
}

 
//去掉字符串两端的空格
function Trim(strString){
	if (strString!=null)
		return strString.replace(/^\s*|\s*$/g,'') 
	else
		return ""
}   

//产生相同的N个字符形成的字符串
function BuildSomeStr(n,strString){
	var i,Ret="";
	for (i=1;i<=n;i++)	Ret+=strString
	return Ret
}


//删除由数组arrTags所指定的HTML标签
//如调用：str=NoHtmlTags(array("font","nobr"),str)
function NoHtmlTags(arrTags,str){
	var re,Ret
	Ret=str
	for (i=0;i<=arrTags.length-1;i++){
		re = new RegExp("<("+arrTags[i]+")[^>]*>.*?|","gi");
		Ret = Ret.replace(re,"");
		re = new RegExp("</"+arrTags[i]+">" ,"gi");
		Ret = Ret.replace(re,"");
	}
	return Ret
}

//删除所有HTML标签
function RemoveHTML(strHTML){
	var regEx = /<[^>]*>/g;
	return strHTML.replace(regEx, "");
}

//让数字转换成固定长度的文本数字，如 1-->01,001,0001....
function ImmobilyNumber(n,len){
	var Ret
	var tmpn=n.toString()
	var tmpx=len-tmpn.length
	if (tmpx>0)
		Ret=BuildSomeStr(tmpx,"0")+tmpn
	else
		Ret=n
	return Ret
}

//用正则匹配
function IsRegMatch(str,RegId){
	var reg;
	switch (RegId){
		case 1: //常用用户名
			reg = /^[A-Za-z0-9_-]\w{3,19}$/ 							; break;
		case 2: //常用正整数
			reg = /^\d+$/												; break;
		case 3:	//必须是中文
			reg = /^[\u0391-\uFFE5]+$/									; break;
		case 4:	//手机号码
			reg = /^((\(\d{3}\))|(\d{3}\-))?13\d{9}|15[012345689]\d{8}$/; break;
		case 5:	//电话号码
			reg = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/	; break;
		case 6:	//电子邮件
			reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/		; break;
			//reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/				; break;　// 这句也能用
		case 7:	//URL
			reg = /^http:\/\/([\w-]+(\.[\w-]+)+(\/[\w-   .\/\?%&=\u4e00-\u9fa5]*)?)?$/	;break
		case 8://纯日期
			reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/				;break;
		case 9://日期 + 时间
			reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; break;
		case 10://纯时间
			reg = /^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/					;break;
		case 11://邮编
			reg = /^[1-9]\d{5}$/										;break;
		case 12://身份证号
			reg = /^\d{15}(\d{2}[A-Za-z0-9])?$/							;break;
		case 13://ＱＱ
			reg = /^\s*[.0-9]{5,10}\s*$/								;break;
	}
	var r = str.match(reg);
    if(r==null) return false; else return true;
}

//人为地认为是空数据
function IsNull(strData){
	if (strData==null || strData==0 || strData=="0" || strData=="") return true; else return false;
}

function getDistance(sString,strTezheng1,nDirect,strTezheng2){
	var Pos, ArrTmp
	ArrTmp = sString.split(strTezheng1)
	if (ArrTmp.length > 2){ alert("特征码过多！(有 "+ArrTmp.length+" 个)");return false}
	if (ArrTmp.length = 2){
		if (nDirect<0){	
			var tmpP = ArrTmp[0].lastIndexOf(strTezheng2);
			return ArrTmp[0].length - tmpP
		}else{
			var tmpP = ArrTmp[1].IndexOf(strTezheng2);
			return ArrTmp[1].length - tmpP
		}
	}else{
		return false
	}
}

//读取数组型字符串的值
function getArrString(sString,sSplit,nIndex){
	if (sSplit=="") sSplit = ","
	var tmp = sString.split(sSplit)
	if (nIndex<=tmp.length-1)
		return tmp[nIndex]
	else
		return null
	
}


//修改数组型字符串的值
function setArrString(sString,sSplit,nIndex,Value){
	if (sSplit=="") sSplit = ","
	var tmp = sString.split(sSplit)
	if (nIndex<=tmp.length) tmp[nIndex] = String(Value)
	return tmp.join(sSplit)
}



//四舍五入,  保留pos位小数
function formatFloat(src, pos){
    return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);
}


//加入收藏夹
function AddFav(Title){
	window.external.AddFavorite(document.location.href,"供求总目录网 - "+Title);
}

//复制当前页地址
function CopyCurrentPageUrl(){
	clipboardData.setData('text',document.location.href)
	alert("本页地址已复制。")
}

//动态创建Flash对象
function createFlashMove(obj,sName,src,width,height,wmode,isdisplay,fullscreen){
    var swf=document.createElement("object");
	if (!isdisplay) swf.style.display = "none"
    var param=document.createElement("param");
    param.setAttribute("name","movie");
    param.setAttribute("value",src);
    param.setAttribute("allowFullScreen","true");
    swf.appendChild(param);
    if(fullscreen){
        var param=document.createElement("param");
        param.setAttribute("name","allowScriptAccess");
        param.setAttribute("value","always");
        swf.appendChild(param);
    }
    if(wmode){
        param=document.createElement("param");
        param.setAttribute("name","wmode");
        param.setAttribute("value","transparent");
        swf.appendChild(param);
    }

    param=document.createElement("param");
    param.setAttribute("name","quality");
    param.setAttribute("value","high");
    swf.appendChild(param);

	var embed=document.createElement("embed");
    embed.setAttribute("type","application/x-shockwave-flash");
    embed.src=src;
    if(fullscreen) embed.setAttribute("allowScriptAccess","always");
    if(wmode) embed.setAttribute("wmode","transparent");
    embed.setAttribute("width",width);
    embed.setAttribute("height",height);
    embed.name=sName;
    obj.appendChild(swf);
    swf.setAttribute("type","application/x-shockwave-flash");
    swf.setAttribute("data",src);
    swf.setAttribute("width",width);
    swf.setAttribute("height",height);
    if(sName) swf.id=sName;
}

function HideObj(TheObj,BBDiv,Event){
	var myObj = GetObj(TheObj)
	if (myObj==null) return null
	myObj.style.display = 'none'
	if (typeof(BBDiv)=="object"){
		try{BBDiv.Hide()}
		catch(e){}
	}
	if (Event!=null) Event()
}

function ShowObj(TheObj){
	var myObj = GetObj(TheObj)
	if (myObj==null) return null
	myObj.style.display = ""
}

function IsExistObj(varObj){
	switch(typeof(varObj)){
		case "object":
			return true;
		case "string":
			if (document.getElementsByName(varObj).length>=1)
				return true;
			else
				return false;
		default:
			return false;
	}
}

function strToDate(strDateTime,nStyle){
	var RetDateTime
	var ArrTmp,strDate,strTime
	var ArrDate,ArrTime
	var strStyle
	strDateTime = Trim(strDateTime)
	switch(nStyle){
		case 0:	strStyle = "";break;	
		case 1:	strStyle = "yyyy-MM-dd hh:mm:ss";break;
		case 3:	strStyle = "yyyy/MM/dd";break;
		case 4:	strStyle = "MM/dd/yyyy";break;
		case 5:	strStyle = "yyyy年MM月dd日";break;
		case 6:	strStyle = "yyyy年MM月dd日 hh时mm分ss秒";break;
		case 7:	strStyle = "yyyy年MM月";break;
		default:strStyle = "yyyy-MM-dd";break;
	}
	//分离日期，时间
	ArrTmp	= strDateTime.split(" ")
	strDate	= ArrTmp[0]
	if (ArrTmp.length==2) strTime = ArrTmp[1]
	
	//找出日期分隔符,得到日期数据的数组形式,
	var arrSplit = new Array("-","/"),i = 0
	for (i=0;i<=arrSplit.length;i++){
		if (strDate.indexOf(arrSplit[i])>=0) break;
	}
	if(i>arrSplit.length){alert("找不到日期分隔符。");return null}
	ArrDate = strDate.split(arrSplit[i]);
	
	//得到时间的数组形式
	if (strTime!=null){
		ArrTime = strTime.split(":");
		RetDateTime = new Date(ArrDate[0],ArrDate[1]-1,ArrDate[2],ArrTime[0],ArrTime[1],ArrTime[2])
	}else{
		RetDateTime = new Date(ArrDate[0],ArrDate[1]-1,ArrDate[2])
	}
	
	return (strStyle!="")?RetDateTime.format(strStyle):RetDateTime

} 

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 GetArrRet(RetString,IsDecode,strSplit){
	if (IsDecode) RetString = UrlDecode1(RetString)
	if (strSplit=="" || strSplit==null) strSplit = "|~|"
	var ArrTmp = RetString.split(strSplit)
	return ArrTmp
}


//移除元素
function RemoveElement(TheObj){
	var obj = GetObj(TheObj)
	if (obj==null) return null
	var parent = obj.parentNode
	parent.removeChild(obj)
}


//字符串转换成多维数组
function strToArray(str,mySplit,n){
	if (typeof(mySplit)=="string") return str.split(mySplit)
	if (n==null) n=-1;
	n++
	var ArrRet = Array()
	if (str.indexOf(mySplit[n])>0){
		var ArrTmp = str.split(mySplit[n])
		for (var i=0;i<=ArrTmp.length-1;i++){
			ArrRet[i] = strToArray(ArrTmp[i],mySplit,n)
		}
	}else{
		return str
	}
	return ArrRet
}

//数组转换成字符串
function ArrayToStr(arrArray,nStart,nEnd,strSplit){
	if ((nStart==null&&nEnd==null)){
		nStart = 0 ; nEnd = arrArray.length-1
	}
	for (var i=0;i<=nStart-1;i++) arrArray[i] = null
	for (i=nEnd+1;i<=arrArray.length-1;i++) arrArray[i] = null
	var ArrRet = new Array()
	var j = 0
	for (i=0;i<=arrArray.length-1;i++){
		if (arrArray[i] != null){
			ArrRet[j] = arrArray[i]
			j++
		}
	}
	var StrRet = ArrRet.toString()
	return StrRet.replace(/\,/g,strSplit);
}

//自动填写表单
function AutoFillForm(oForm,ArrData,oEditor,oContent,SelCity,SelClass){
	if (ArrData==null) return
	if(ArrData.constructor!= window.Array) return null
	try{if (SelCity==null) SelCity	  = SelectCity} catch(e){}
	try{if (SelClass==null) SelClass = SelectClass}catch(e){}
	if (typeof(oForm)=="string") oForm = GetObj(oForm)
	for(var i=0;i<=ArrData.length-1;i++){
		var objName = ArrData[i][0]
		var objValue= ArrData[i][1]
		var obj = eval("document." + oForm.name + "." + objName)
		if (obj==null) continue

		var objType,objLen
		if (obj.type!=null){//存在单个对象
			objType = obj.type
			objLen	= 1
		}else{//可能存在多个或不存在
			objType = obj[0].type
			objLen	= obj.length
		}
 
		//文本，密码、文本域
		if (objType=="text"||objType=="password"||objType=="textarea"||objType=="hidden"){
			if (objLen==1){
				obj.value = objValue
			}else{
				for (var j=0;j<=objLen-1;j++) obj[j].value = objValue
			}
		}

		//下拉框
		if (objType=="select-one"){
			switch(obj.name){
				case "Class1"	: try{SelClass.set(Array(objValue,null,null))}catch(e){};break;
				case "Class2"	: try{SelClass.set(Array(null,objValue,null))}catch(e){};break;
				case "Class3"	: try{SelClass.set(Array(null,null,objValue))}catch(e){};break;
				case "City1"	: try{SelCity.set(Array(objValue,null,null,null))}catch(e){};break;
				case "City2"	: try{SelCity.set(Array(null,objValue,null,null))}catch(e){};break;
				case "City3"	: try{SelCity.set(Array(null,null,objValue,null))}catch(e){};break;
				case "City4"	: try{SelCity.set(Array(null,null,null,objValue))}catch(e){};break;
				default		: try{;GetObj(objName).value = objValue}catch(e){};
			}

		}
		
		//单选 ,一般存在多个同名
		if (objType=="radio"){
			for (var j=0;j<=objLen-1;j++){
				if(MyBool(obj[j].value) == MyBool(objValue)){obj[j].checked = true;break;}
			}
		}

		//复选，一般存在单个同名
		if (objType=="checkbox"){
			if(obj.value == objValue) obj.checked = true;
		}
	}
	
	
	try{
		if (Frame1.document.getElementById("PreviewPhoto1").src=="" &&  GetObj("Pic").value!=""){
			Frame1.document.getElementById("DivNoPreview").style.display = "none"
			Frame1.document.getElementById("DivPreviewMedia").style.display = ""
			Frame1.document.getElementById("PreviewPhoto1").src = GetObj("Pic").value
		}
	}catch(e){}

	if (oEditor!=null){
		if (oContent.value!=""){
			setTimeout(function(){
				var oEditorBody = oEditor.HtmlEditor.document.body
				oEditorBody.style.cssText	= "color:#666666"
				oEditorBody.innerHTML		= oContent.value;
			},200)
		}
	}
	
	function MyBool(value){
		value = Trim(String(value).toLowerCase())
		if (isNaN(value)){
			if (value=="false") return false
			if (value=="true") return false
			return value
		}else{
			if (value=="0") return false
			if (value=="1") return true
			return true
		}
	}
}

function GetChkRadioValue(oChkRadio){
	var Ret = ""
	for (var i=0;i<=oChkRadio.length-1;i++){
		if (oChkRadio[i].checked)	Ret += oChkRadio[i].value + ","
	}
	Ret = Ret.substring(0,Ret.length-1)
	return Ret
}

function GetObj(TheID,IsErrMsg,ByIdName){
	if (typeof(TheID)=="object") return TheID
	if (typeof(TheID)=="string") {
		var tmp = document.getElementsByName(TheID).length
		if(tmp>0){
			if (ByIdName==null){
				if (tmp==1) return document.getElementById(TheID)
				if (tmp>1)  return document.getElementsByName(TheID)
			}
			if (ByIdName==0){if (tmp==1) return document.getElementById(TheID)}
			if (ByIdName==1){if (tmp>=1) return document.getElementsByName(TheID);}
		}
	}
	if (IsErrMsg) alert("函数参数有误!");
	return null
}

//判断obj_1是否在obj_2中
function GetChildObj(strObj_1,obj_2,isMsg){
	var obj2 = GetObj(obj_2,false,1)
	if (isMsg==null) isMsg = true
	if (obj2==null){if(isMsg)alert("参数obj_2不是对象");return false}
	var objChild = obj2.children
	for(var i=0;i<=objChild.length-1;i++){
		if (objChild[i].id.toLowerCase()==strObj_1.toLowerCase()){
			return objChild[i]
		}
	}
	return null
}
function GetObjInObj(obj_1,obj_2,isMsg){
	var obj1 = GetObj(obj_1,false,1)
	var obj2 = GetObj(obj_1,false,1)
	if (isMsg==null) isMsg = true
	if (obj1==null){if(isMsg)alert("参数obj_1不是对象");return false}
	if (obj2==null){if(isMsg)alert("参数obj_2不是对象");return false}
	var FindIndex = null
	for (var i=0;i<=obj1.length-1;i++){
		var objP = obj1[i].parentNode;
		while(objP){
			if(objP!=obj_2){
				objP = objP.parentNode;
			}else{
				FindIndex = i
				break;
			}
		}
		if (FindIndex!=null) break;
	}
	if (FindIndex!=null) return obj1[FindIndex]; else return false
}
function getForm(cobj){return getParentEle(cobj,"form")}
function getParentEle(cobj,ParentEleName){
	cobj = GetObj(cobj)
	if (cobj!=null){
		var obj = cobj.parentNode;
		while(obj){if(obj.tagName.toLowerCase()!=ParentEleName) obj = obj.parentNode;else	return obj;	}
	}
}


//当单元格为空时，边线不显示，用它可以将空半单元格填入空格
function FillTdSpace(tabid){   
    var tableobj = document.getElementById(tabid);   
    var tdarr = tableobj.cells;   
    for (var i = 0; i < tdarr.length; i++) {   
        if (tdarr[i].innerText == '') {   
            tdarr[i].innerText = ' ';
        }   
    }   
}

//点击显示ＩＰ来源
function getIpSrc1(objSpan){
	var Ip		= objSpan.innerText
	if (Ip.length>15) return
	objSpan.innerHTML += "<br>" + AjaxGet("/Include/Asp/Components/GetIpSource.asp?Ip="+Ip,true,null,false,false)
	
}

//重组字串
function ReBuildStr(str1,strSplit,n,str2){
	var ArrTmp	= str1.split(strSplit)
	ArrTmp[n-1]	= str2
	return ArrayToStr(ArrTmp,null,null,"|")
}

function AddBr(oContain){
	if (typeof(oContain)!="object") return
	var oBR = document.createElement("<br>")
	oContain.appendChild(oBR)
}


var DebugBox
function ShowDebug(str){
	if (GetObj("DebugMsgBox")==null){
		DebugBox = new DivMsgBox("DebugMsgBox",7,"","","#3A6EA5","#FFFFFF","",800,30,30,100)
	}
	if (str!="" && str!=null) DebugBox.setContent(str)
	DebugBox.Show()
}

//重载图片
function ReloadImg(objImg){objImg = GetObj(objImg); objImg.setAttribute('src',objImg.src)}

//从当前网址中分离出参数，返回二维数组
function getUrlQuery(){
	var strUrl = document.location.href
	var ArrTmp = strUrl.split("?")
	if (ArrTmp.length>1){
		return strToArray(ArrTmp[1],Array("&","="))
	}else{
		return Array()
	}
}

//取得图片属性
function GetImgSth(strSrc,WhatTest){
	var objTestImg = null; 
	if(objTestImg) objTestImg.removeNode(true); 
	objTestImg = document.createElement("img"); 
	objTestImg.style.position	= "absolute"; 
	objTestImg.style.visibility	= "hidden"; 
	//img.attachEvent("onreadystatechange",orsc); 
	//img.attachEvent("onerror",oe); 
	document.body.insertAdjacentElement("beforeend",objTestImg); 
	objTestImg.src = strSrc; 
	WhatTest = WhatTest.toLowerCase()
	switch (WhatTest){
		case "w" ://测试图片尺寸
			return objTestImg.offsetWidth; 	break;
		case "h" ://测试图片尺寸
			return objTestImg.offsetHeight;	break;
	}
	
}

//设为首页
function setIndexPage(strPage){
	if(strPage==null){
		strPage = document.location.href
		strPage	= strPage.replace("http://","")
		var Arr	= strPage.split("\/")
		strPage	= "http://" + Arr[0]
	}
	var obj = window.event.srcElement
	if(obj){
		obj.style.behavior='url(#default#homepage)';
		obj.setHomePage(strPage);
		return true
	}
}


function CopyAUrl(nMode){
	var objA = event.srcElement
	var strCopy = objA.innerText
	switch(nMode){
		case 1: strCopy = document.location.href ;break;
	}
	clipboardData.setData('text',strCopy)
	alert("地址已复制，您可以通过ＱＱ或其它途径发送给您的好友。")
}

function HitSearch(objKey,nMode,isHit){
	if (nMode<1){	//以文字方式
		if(isHit){
			if(objKey.value==objKey.defaultValue){objKey.value='';objKey.style.fontWeight='bolder';}
		}else{
			if(objKey.value==''){objKey.value=objKey.defaultValue;objKey.style.fontWeight='';}			
		}
	}else{			//以背景图方式
		if (isHit){
			objKey.style.backgroundImage = "url()"
		}else{
			if (objKey.value=="") objKey.style.backgroundImage = "url(/Images/Common/SearchKey.gif)"
		}
	}
}


//取得一个文件名的扩展名
function getFileExt(sfilename){
	var arrTmp=sfilename.split(".");
	return (arrTmp[arrTmp.length-1].toLowerCase());
}

function GetShowMedia(oContainer,sMediaUrl,nWidth,nHeight,sLink,IsAutoSize){
	var Ret = ""
	if (sMediaUrl!=""){
		var strExt = getFileExt(sMediaUrl)
		if (strExt=="swf"){
			Ret += "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width="+nWidth+" height="+nHeight+">"
			Ret += "<param name='movie' value='"+sMediaUrl+"'>"
			Ret += "<param name='quality' value='high'>"
			Ret += "<embed src='"+sMediaUrl+"' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width="+nWidth+" height="+nHeight+">"
			Ret += "</embed></object>"
		}else if (strExt=="jpg" || strExt=="gif"){
			Ret += "<img src='"+sMediaUrl+"' width='"+nWidth+"' height='"+nHeight+"'"
			if (IsAutoSize) Ret += " onload='DrawImage(this,"+nWidth+","+nHeight+")'"
			Ret += ">"
			if (sLink!="" && sLink!=null){
				Ret = "<a href='"+sLink+"' target='_blank'>" + Ret + "</a>"
			}
		}else{
			var ArrTmp = sMediaUrl.split("/")
			Ret = ArrTmp[ArrTmp.length-1]
		}
	}
	return Ret
}