/**
 * @author:汤锡文<mailto:syvin_tom@hotmail.com>
 * @date:2006-06-30
 */

function isEmail(emailad) {
	var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
    var check=/@[\w\-]+\./;
    var checkend=/\.[a-zA-Z]{2,3}$/;
    if(((emailad.search(exclude) != -1)||(emailad.search(check)) == -1)||(emailad.search(checkend) == -1)){
      return false;
    }else{
      return true;
    }	
}

function isNumber(str) {
	var ValidChars = "0123456789.-";
	var err=0;
	if(str.length>20) return false;
	for (var i =0; i<str.length; i++) {
		if (ValidChars.indexOf(str.charAt(i)) == -1) {
			return false;
		} 
		if (i==0&&((str.charAt(i)=='0'&&str.charAt(i)!='.')||str.charAt(i)=='.')) {
			return false;
		}
		if (i!=0&&str.charAt(i)=='-') {
			return false;
		}
		if (str.charAt(i)=='.') {
			err++;
			if(err==2) return false;
		}
	} 
	return true;
}

function isPhone(str) {
	var valid = 1;
	var ValidChars = "0123456789()-+ ";
	if(str.length>20) valid=0;
	for (var i =0; valid!=0&&i < str.length; i++) {
		if (ValidChars.indexOf(str.charAt(i)) == -1) {
			valid = 0;
		} 
	} 
	return valid;
}

//判断是否为空，是返回true，否返回false
//function isEmpty(str) {
//    if(str=="") return true;
//    else return false;
//}

//判断是否为邮政编码，要求6位数字，是返回true，否返回false
function isZip(str) {
    var reg=/^\d{6}$/;
    return reg.test(str);
}

//判断是否为电子邮件，要求格式abc@tangtang.org，是返回true,否返回false
function isSimpleEmail(str) {
    var reg=/^\S+@\S+\.\S+$/;
    return reg.test(str);
}

//严格的email格式判断
function isEmailAddress(email) {
    invalidChars = " /;,:{}[]|*%$#!()`<>?";
    if (email == "") {
        return false;
    }
    for (i=0; i< invalidChars.length; i++) {
        badChar = invalidChars.charAt(i);
        if (email.indexOf(badChar,0) > -1) {
            return false;
        }
    }
    pos = email.indexOf("@",1)
    if (pos == -1) {
        return false;
    }
    if (email.indexOf("@", pos+1) != -1) {
        return false;
    }
    periodPos = email.indexOf(".",pos)
    if(periodPos == -1) {
        return false;
    }
    if ( pos + 2 > periodPos) {
        return false;
    }
    if ( periodPos + 3 > email.length) {
        return false;
    }
    return true;
}

//判断是否为网址，要求格式http://www.tangtang.org，是返回true,否返回false
function isWWW(str) {
    var reg=/^http:\/\/\S+\.\S+$/;
    return reg.test(str);
}

//判断是否为手机号码，要求11位数字，前二位为13，是返回true,否返回false
function isMobilePhone(str) {
    var reg=/^13\d{9}$/;
    var reg2=/^159\d{8}$/;
    return reg.test(str) || reg2.test(str);
}

//判断是否为电话号码，要求格式0571-85022088，是返回true,否返回false
function isPhoneNum(str) {
    var reg=/^0\d{2,3}-\d{6,8}$/;
    return reg.test(str);
}

//判断是否是身份证号码
function isPersonID(str) {
    if((str.length==15 && isNumber(str)) || (str.length==18 && isNumber(str.substring(0,17)))) {
        return true;
    }
    return false;
}

//判断是否是身份证号码
function isIdentityCard(str) {
    return isPersonID(str);
}

//判断是否为金额，要求格式最多2位小数，是返回true,否返回false
function isMoney(str) {
    var reg=/^\d+\.{0,1}\d{0,2}$/;
    return reg.test(str);
}

//判断是否为日期，要求格式2002-5-13或2002-05-13，是返回true,否返回false
function isDate(str) {
    var flag;
    //用正则表达式判断
    var reg=/^\d{4}-\d{1,2}-\d{1,2}$/;
    flag=reg.test(str);
    if(flag==false) return flag;

    //判断日期是否正确
    var YMD;
    YMD=str.split("-");
    var year,month,date;            //年，月，日
    year=parseInt(YMD[0]);
    month=parseInt(YMD[1]);
    date=parseInt(YMD[2]);
    if(month>12 || month<1) return false;
    if(date>31 || date<1) return false;
    var maxDate=new Array(12);      //每月的最大日期
    if(month==1) maxDate[0]=31;
    if(month==2) maxDate[1]=28;
    if(month==3) maxDate[2]=31;
    if(month==4) maxDate[3]=30;
    if(month==5) maxDate[4]=31;
    if(month==6) maxDate[5]=30;
    if(month==7) maxDate[6]=31;
    if(month==8) maxDate[7]=31;
    if(month==9) maxDate[8]=30;
    if(month==10) maxDate[9]=31;
    if(month==11) maxDate[10]=30;
    if(month==12) maxDate[11]=31;
    //闰月
    if((year%4==0 && year%100!=0) || (year%400==0)) maxDate[1]=29;
    if(maxDate[month-1]<date) return false;
    else return true;
}

//判断用户按键是否为数字
function isNumPress() {    
    if(window.event.keyCode>=48&&window.event.keyCode<=57) return true;
    else return false;
}

//判断用户按键是否为数字或回车
function isNumOrEnterPress() {    
    if((window.event.keyCode>=48 && window.event.keyCode<=57) || window.event.keyCode==13) return true;
    else return false;
}

//字符串去除左右空格的方法
function trim(str) {
    regExp1 = /^ */;
    regExp2 = / *$/;
    return str.replace(regExp1,'').replace(regExp2,'');
}

//显示问候语
function showHello() {
    var greeting;
    var d = new Date();    
    h = d.getHours();
    if(h<6) {
        greeting="凌晨好";
    } else if (h<9) {
        greeting="早上好";
    } else if (h<12) {
        greeting="上午好";
    } else if (h<14) {
        greeting="中午好";
    } else if (h<17) {
        greeting="下午好";
    } else if (h<19) {
        greeting="傍晚好";
    } else if (h<22) {
        greeting="晚上好";
    } else {
        greeting="夜里好";
    }
    document.write(greeting);
}

var whitespace = " \t\n\r";
function isWhitespace (s){
   var i;
    if (isEmpty(s)) 
		return true;
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}

function hasWhitespace (s) {
    var i;
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (c == " ") {
            return true;
        }
    }
    return false;
}

//判断是否包含标点符号
function hasInterpunction(s) {
    var i;
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (c < "0") {
            return true;
        }
        if (c > "9" && c < "A") {
            return true;
        }
        if (c > "Z" && c < "a") {
            return true;
        }
        if (c > "z" && c <= "~") {
            return true;
        }
    }
    return false;
}

function isEmpty(s){
  return ((s == null) || (s.length == 0))
}

function visibleField(_field,_hs){
   	if (document.all){ 
		if(_hs == 1) eval("document.all."+_field +".style.visibility='visible';");
		if(_hs == 0) eval("document.all."+_field +".style.visibility='hidden';");
	}else{
		if (_hs=='1') eval("document.layers['"+_field+"'].visibility='show';");
		if (_hs=='0') eval("document.layers['"+_field+"'].visibility='hide';");
	}
}
function checkPhone (s){
 	var i;
    if (isEmpty(s)){
       if (checkPhone.arguments.length == 1){ 
	    	return false;
	   }else{
	   		return (checkPhone.arguments[1] == true);
	   }
	}   
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
		if(i == 0){
		 	if(c == '(' ){
		  		continue;
		 	}
		} else 
		if( i == 4 ){
		 	if(c == ')'){
		  		continue;
		 	}
		} else 
		if(i == 8){
		 	if( c == '-'){
		  		continue;
		 	}
		} else{
		 	if (!isDigit(c)) return false; 
		}
    }
    return true;
}

function isDigit (c){   
	return ((c >= "0") && (c <= "9"))
}

function isInteger(getS){
   var i;
    if (isEmpty(getS)) 
       if (isInteger.arguments.length == 1) return false;
       else return (isInteger.arguments[1] == true);
    for (i = 0; i < getS.length; i++)
    {   
        var c = getS.charAt(i);
        if (!isDigit(c)) return false;
    }
    return true;
}

function encode(str) {
	var result = "";
	
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") result += "+";	
		else if (str.charAt(i) == " ") result += "+";
		else result += str.charAt(i);
	}
	
	return escape(result);
}

function decode(str) {
//	var result = "";

 	var result = str.replace(/\+/g, " ");
	
/*	
	for (i = 0; i< str.length; i++) {
		if (str.charAt(i) == "+") result += " ";
		else result += str.charAt(i);
	}
*/
	return unescape(result);
}


function encode1(str) {
	str =  encodeURIComponent(str);
	return str.replace(/\+/g, "%2B");
}

function newwin(url) {
	var win = window.open(url,"newwin","toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=620,height=600");    	
    win.focus();
}

function newupload(url) {	
	var win = window.open(url,"upload","toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,personal=no,menu=no,location=no,resizable=no,width=620,height=200");    	
    win.focus();
}

function doBlink() {
  // Blink, Blink, Blink...
  var blink = document.all.tags("BLINK")
  for (var i=0; i < blink.length; i++)
    blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : ""
}

function startBlink() {
  // Make sure it is IE4
  if (document.all)
    setInterval("doBlink()",1000)

}

function goback() {
	if(window.document.forms[1].Done) {
		window.location=window.document.forms[1].Done.value;
	}
	else if (window.document.forms[1].done) {
		window.location=window.document.forms[1].done.value;
	} 
	else {
		history.go(-1)
	}
}

function fullform(frm) {	
	var myform = frm;
	for(var i=0;i<myform.elements.length;i++) {
		var element = myform.elements[i];		
		if (eval("typeof("+"cgi_"+element.name+")")=='undefined') 
			continue;
		var jsvar = eval("cgi_"+element.name);				
		if (element.type=="select-one") {
			for(var j=0;j<element.options.length;j++) {
				var option = element.options[j];
				if (option.value==eval("cgi_"+element.name)) {
					option.selected=true;									
					break;
				}				
			}						
		}			
		else if (element.type=="text") {
				element.value=eval("cgi_"+element.name);
		}
		else if (element.type=="checkbox") {
			     jsvar = jsvar+",";
			 	 if (jsvar.indexOf(element.value+",")>-1) {			 	 	
			 	    element.checked=true;
			 	 }
			 	    
		}
		else if (element.type=="radio") {
			 if (jsvar==element.value)
			    element.checked=true;
		}				
		else if (element.type=="textarea") {
			 element.value=jsvar;
		}
		
	}
}

//检查文本框字符长度(str文本框文本,minlen最小长度,maxlen最大长度)
function checkSize(str, minlen, maxlen) {
    
    if(isEmpty(str)) {
        alert("内容为空 ^O^");
        return false;
    }
    else if(str.length < minlen || str.length > maxlen) {
        alert("请调节一下内容大小 ^&^");
        return false;
    }

}

//长度为字符长度(不管单双字节)
function checkSize2(str, minlen, maxlen, objectName) {

    if(isEmpty(str)) {
        alert("“" + objectName + "”" + "内容为空 ^O^");
        return false;
    }
    else if(str.length < minlen || str.length > maxlen) {
        alert("请调节一下" + "“" + objectName + "”" + "内容大小 ^&^");
        return false;
    }

}

function getStrLength(str){
    var length=0;
    for (var i = 0; i < str.length; i++) {   
           var c = str.charCodeAt(i);
           if (c < 128){
                length=length+1;
            }else{
                length=length+2;
            }
      } 
      return length;
}

function drawImage(ImgD,width,height) {
    var image=new Image();
    image.src=ImgD.src;
    if((width/image.width)>(height/image.height)) {
        ImgD.height = height;
        ImgD.width = (height/image.height)*image.width;
    } else {
        ImgD.width = width;
        ImgD.height = (width/image.width)*image.height;
    }
    ImgD.alt = image.width + "x" + image.height;
}

function drawImageByStandard(ImgD,standard) {
    var image=new Image();
    image.src=ImgD.src;
    if ((image.width > standard)  || (image.height > standard)) {
    	if (image.width > image.height){
    		ImgD.width = standard;
        ImgD.height = (standard/image.width)*image.height;
    	} else {
    		ImgD.height = standard;
        ImgD.width = (standard/image.height)*image.width;
    	}
    	
    }  
}

function showimage(imageUrl,size) {
    var imgObj = new Image()
    imgObj.src = imageUrl;
    if(imgObj.width > imgObj.height) {
        document.write("<img src="+imgObj.src+" border=1  class=black-border height=" + imgObj.height*size/imgObj.width + " width=" + size + ">");
    } else if(imgObj.width < imgObj.height) {
        document.write("<img src="+imgObj.src+" border=1 class=black-border height=" + size + " width="+ imgObj.width*size/imgObj.height +">");
    } else {
        document.write("<img src="+imgObj.src+" border=1 class=black-border height=" + size + " width="+ size + " >");
    }
}

function disableRefreshKey() {
    if ( (event.keyCode == 8
        && (event.srcElement.type != "text" 
        && event.srcElement.type != "textarea" 
        && event.srcElement.Type != "password")) //屏蔽退格删除键 
        || (event.keyCode==116) //屏蔽 F5 刷新键
        || (event.ctrlKey && event.keyCode==82) //Ctrl + R
        || (event.ctrlKey && event.keyCode==78) //屏蔽 Ctrl+n
        || (event.shiftKey&& event.keyCode==121) //屏蔽 shift+F10
        || (event.srcElement.tagName == "A" && event.shiftKey) //屏蔽 shift 加鼠标左键新开一网页
        || (event.altKey && event.keyCode==115)) { //屏蔽Alt+F4
        event.keyCode=0;
        event.returnValue=false;
    }
}

function gotoPage(beginUrl,endUrl,frm) {
    var pge = frm.pbToPge.value;
    if (pge == "") {
        alert("请输入页码!");
    } else if (!isInteger(pge)) {
        alert("输入的页码不正确!");
    } else {
        window.location=beginUrl+pge+endUrl;
    }
}

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
        oldonload();
        func();
        }
    }
}

function doAction(formname, actionValue) {
    frm = eval("document." + formname);
    frm.action.value = actionValue;
    frm.submit;
}

function setDone(a) {
    var link = a.href;
    if(link.indexOf('?')>0) {
        return link + "&referer=" + window.location;
    } else {
        return link + "?referer=" + window.location;
    }
}

function setUrlTime(a) {
    var link = a.href;
    var time = new Date();
    if(link.indexOf('?')>0) {
        return link + "&time=" + time.getTime();
    } else {
        return link + "?time=" + time.getTime();
    }
}

function str2arr(str,split) {
    var arr = new Array();
    var s = "";
    var c;
    if(str && str.length > 0) {
        for(var i=0;i<str.length;i++) {
            c = str.charAt(i);
            if(c==split) {
                arr.push(s);
                s = "";
            } else {
                s = s + c;
            }
        }
        arr.push(s);
    }
    return arr;
}

function isChineseCharacters(str){
    for (var i = 0; i < str.length; i++) {   
        var c = str.charCodeAt(i);
        if (c < 128 && c != 32){
            return false;
        }
    } 
    return true;
}

function utf8(wide) {
var c, s;
var enc = "";
var i = 0;
while(i<wide.length) {
c= wide.charCodeAt(i++);
// handle UTF-16 surrogates
if (c>=0xDC00 && c<0xE000) continue;
if (c>=0xD800 && c<0xDC00) {
if (i>=wide.length) continue;
s= wide.charCodeAt(i++);
if (s<0xDC00 || c>=0xDE00) continue;
c= ((c-0xD800)<<10)+(s-0xDC00)+0x10000;
}
// output value
if (c<0x80) enc += String.fromCharCode(c);
else if (c<0x800) enc += String.fromCharCode(0xC0+(c>>6),0x80+(c&0x3F));
else if (c<0x10000) enc += String.fromCharCode(0xE0+(c>>12),0x80+(c>>6&0x3F),0x80+(c&0x3F));
else enc += String.fromCharCode(0xF0+(c>>18),0x80+(c>>12&0x3F),0x80+(c>>6&0x3F),0x80+(c&0x3F));
}
return enc;
}

var hexchars = "0123456789ABCDEF";

function toHex(n) {
return hexchars.charAt(n>>4)+hexchars.charAt(n & 0xF);
}

var okURIchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";

function encodeURIByUtf8(s) {
var s = utf8(s);
var c;
var enc = "";
for (var i= 0; i<s.length; i++) {
if (okURIchars.indexOf(s.charAt(i))==-1)
enc += "%"+toHex(s.charCodeAt(i));
else
enc += s.charAt(i);
}
return enc;
}

function UnicodeToUTF8(strInUni) {
    if(null==strInUni) {
        return null;
    }
    var strUni=String(strInUni);
    var strUTF8=String();
    for(var i=0;i<strUni.length;i++) {
        var wchr=strUni.charCodeAt(i);
        if(wchr<0x80){
            strUTF8+=strUni.charAt(i);
        } else if(wchr<0x800) {
            var chr1=wchr&0xff;
            var chr2=(wchr>>8)&0xff;
            strUTF8+=String.fromCharCode(0xC0|(chr2<<2)|((chr1>>6)&0x3));
            strUTF8+=String.fromCharCode(0x80|(chr1&0x3F));
        } else {
            var chr1=wchr&0xff;
            var chr2=(wchr>>8)&0xff;
            strUTF8+=String.fromCharCode(0xE0|(chr2>>4));
            strUTF8+=String.fromCharCode(0x80|((chr2<<2)&0x3C)|((chr1>>6)&0x3));
            strUTF8+=String.fromCharCode(0x80|(chr1&0x3F));
        }
    }
    return strUTF8;
}

function UTF8ToUnicode(strInUTF8){
    if (null==strInUTF8) {
        return null;
    }
    var strUTF8=String(strInUTF8);
    var strUni=String();
    for(var i=0;i<strUTF8.length;){
        var chr1=strUTF8.charCodeAt(i);
        var chr2=strUTF8.charCodeAt(i+1);
        var chr3=strUTF8.charCodeAt(i+2);
        if(chr1<0x80){
            strUni+=strUTF8.charAt(i);
            i++;
        } else if(0xC0==(chr1&0xE0)){
            if(0x80!=(chr2&0xC0)) {
                return null;
            }
            strUni+=String.fromCharCode(((chr1&0x1F)<<6)|(chr2&0x3F));
            i+=2;
        } else if(0xE0==(chr1&0xF0)){
            if(0x80!=(chr2&0xC0)||0x80!=(chr3&0xC0)) {
                return null;
            }
            strUni+=String.fromCharCode(((chr1&0x0F)<<12)|((chr2&0x3F)<<6)|(chr3&0x3F));
            i+=3;
        } else{
            return null;
        }
    }
    return strUni;
}

function URLEncode(Str) {
    if(Str==null||Str=="") {
        return "";
    }
    var newStr="";
    function toCase(sStr){
        return sStr.toString(16).toUpperCase();
    }
    for(var i=0,icode,len=Str.length;i<len;i++) {
        icode=Str.charCodeAt(i);
        if(icode<0x10) {
            newStr+="%0"+icode.toString(16).toUpperCase();
        } else if(icode<0x80) {
            if(icode==0x20) {
                newStr+="+";
            } else if((icode>=0x30&&icode<=0x39)||(icode>=0x41&&icode<=0x5A)||(icode>=0x61&&icode<=0x7A)) {
                newStr+=Str.charAt(i);
            } else {
                newStr+="%"+toCase(icode);
            }
        } else if(icode<0x800) {
            newStr+="%"+toCase(0xC0+(icode>>6));
            newStr+="%"+toCase(0x80+icode%0x40);
        } else {
            newStr+="%"+toCase(0xE0+(icode>>12));
            newStr+="%"+toCase(0x80+(icode>>6)%0x40);
            newStr+="%"+toCase(0x80+icode%0x40);
        }
    }
    return newStr;
}

function URLDecode(Str) {
    if(Str==null||Str=="") {
        return "";
    }
    var newStr="";
    function toCase(sStr){
        return sStr.toString(16).toUpperCase();
    }
    for(var i=0,ichar,len=Str.length;i<len;) {
        if(Str.charAt(i)=="%") {
            ichar=Str.charAt(i+1);
            if(ichar.toLowerCase()=="e") {
                newStr+=String.fromCharCode((parseInt("0x"+Str.substr(i+1,2))-0xE0)*0x1000+(parseInt("0x"+Str.substr(i+4,2))-0x80)*0x40+parseInt("0x"+Str.substr(i+7,2))-0x80);
                i+=9;
            } else if(ichar.toLowerCase()=="c"||ichar.toLowerCase()=="d") {
                newStr+=String.fromCharCode((parseInt("0x"+Str.substr(i+1,2))-0xC0)*0x40+parseInt("0x"+Str.substr(i+4,2))-0x80);
                i+=6;
            } else {
                newStr+=String.fromCharCode(parseInt("0x"+Str.substr(i+1,2)));
                i+=3;
            }
        } else {
            newStr+=Str.charAt(i).replace(/\+/," ");
            i++;
        }
    }
    return newStr;
}

// 显示广告
function showAdv(d,u,l,w,h) {
    var dd = document.getElementById(d);
    if(u.toLowerCase().indexOf(".swf") > 0) {
        dd.innerHTML = "<embed pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' src='"+u+"' width='"+w+"' height='"+h+"' type='application/x-shockwave-flash' scale='ShowAll' loop='loop' menu='menu' wmode='Window' quality='high'></embed>";
    } else {
        dd.innerHTML = "<a href='"+l+"'><img src='"+u+"' width='"+w+"' height='"+h+"' border='0'></a>";
    }
}
