function openCenter(width, height, url, name) {   
	var x = window.screen.width;   
	var y = window.screen.height;   
	x = (x - width) / 2;   
	y = (y - height) / 2;
	var param = "scrollbars=yes,resizable=yes,top=" + y;
	param += ",left=" + x + ",width=" + width +",height=" + height;
	var win = window.open(url, name, param);
	win.focus();
	return win;   
}

function openCommendForm() {
	var url =  contextPath + "/myaccount/showCommendForm.do";
	openCenter(540, 470, url.toString(), "commendForm");
}

function getCursorPsn(txb) { 
	if (event.keyCode==8 || event.keyCode==46) {
	    var slct = document.selection; 
	    var rng = slct.createRange(); 
	    txb.select(); 
	    rng.setEndPoint("StartToStart", slct.createRange()); 
	    var psn = rng.text.length; 
	    rng.collapse(false); 
	    rng.select();
	    var value = txb.value;
	    if (value.charAt(psn-1) == ',' && value.charAt(psn) == ',')
	    	return false;
	    if (value.charAt(psn-1) == ',')
	    	psn = psn - 2;
	    if (value.charAt(psn) == ',')
	    	psn = psn - 1;	    
		var endPos = value.indexOf(",",psn);
		if (endPos == -1)
			endPos = value.length;
		var startPos = value.lastIndexOf(",",psn);
		if (startPos == -1)
			startPos = 0;
		var temp = value.substring(startPos+1,endPos);
		//alert(temp);
		if (IsNum(temp))
			return false;
		else {
			if (startPos == 0) {
				if (event.keyCode==8)
					txb.value = value.substring(endPos+1,value.length) + value.charAt(value.length-1);
				else
					txb.value = value.substring(endPos+1,value.length);
			} else {
				if (event.keyCode==8)
					txb.value = value.substring(0,startPos) + value.substring(endPos,value.length) + value.charAt(value.length-1);
				else
					txb.value = value.substring(0,startPos) + value.substring(endPos,value.length);
			}
		}
		//setCaret(txb,psn);
	    //txb.focus();
    }else{
      event.returnValue = false;
	}
}
  
function setOldValue(value,old){
	old.innerText = value;
}

function setNewValue(value,obj,old,ids){
    var oldValue = old.innerText; 
    var oldArray,newArray,keyArray;
    while(value.charAt(value.length-1) == ',')
    {
       value = value.substring(0,value.length-1);
    }
    
    obj.value = value;
    oldArray = oldValue.split(",");
    newArray = value.split(",");
    keyArray =  ids.value.split(",");
    for(var i = 0 ; i < oldArray.length; i++){
        var target = oldArray[i];
        var find = false;
        for(var j = 0 ; j < newArray.length; j++){
             if(target == newArray[j]) {
                 find = true;
                  break;
             }
        }
        if(!find){
           keyArray[i] = "";
        }
    }
    var addArray="";
    for(var i = 0 ; i < newArray.length; i++){
        var target = newArray[i];
        var find = false;
        for(var j = 0 ; j < oldArray.length; j++){
             if(target == oldArray[j]) {
                 find = true;
                 break;
             }
        }
        if(!find){
            
           if(!isNaN(target)){
              if(addArray == "") addArray = target;
              else {
                addArray += "," + target;
              }  
           }
        }
    }
    var newIds = "";
    for(var i= 0 ; i < keyArray.length; i++){
        var key = keyArray[i];
        if(key == null || key == "") continue;
        if(newIds == "") newIds = key;
        else {
          newIds += "," + key;
        } 
        
    } 
    if(addArray != ""){
       if(newIds == "") newIds = addArray;
       else {
          newIds += "," + addArray;
       }   
    }
    ids.value = newIds;
}

function Param(url) {
	this.url = url;
}
Param.prototype = {

	add: function(name, value, encode) {
		if (this.url.indexOf("?") < 0) {
			this.url += "?";
		} else {
			this.url += "&";
		}
		this.url += name + "=";
		if (encode) this.url += encodeURIComponent(value);
		else this.url += value;
		
		return this;
	},
	
	toString: function(encode) {
		if (encode === true) {
			this.url = encodeURI(this.url);
		}
		this.add("random", Math.random());
		return this.url;
	},
	
	go: function(encode) {
		window.location = this.toString(encode);
	}
};

function htmlEscape(str) {
	alert(str);
	str = str.replace(/(\r\n)/g, "<br/>");
	str = str.replace(/(\s)/g, "&nbsp;");
	return str;
}
  
  function isTime(str)
  {
  	var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
	if (a == null) 
	  return false;
    if (a[1]>24 || a[3]>60 || a[4]>60)
      return false
    return true;
  }
  
  function toShortDateTime(str)
  {
     var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
     if(r==null)
     	return ""; 
     var d= new Date(r[1], r[3]-1, r[4]); 
     return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
  }
  
  function toLongDateTime(str)
  {
    var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
    var r = str.match(reg); 
    if(r==null)
    	return ""; 
    var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
    return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
  }
  
  function isMail(mail)
  {
    return(new RegExp(/^\w+((-+\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));
  }

function trim(str)
{
   return str.replace(/^ +/,"").replace(/ +$/,"");
}

function xmlEncode(str)
{
   str=Trim(str);
   str=str.replace("&","&amp;");
   str=str.replace("<","&lt;");
   str=str.replace(">","&gt;");
   str=str.replace("'","&apos;");
   str=str.replace("\"","&quot;");
   return str;
}

function isEmpty(obj)
{
    obj = document.getElementsByName(obj).item(0);
    if(trim(obj.value) == "")
    {
        if(obj.disabled==false && obj.readOnly==false)
        {
            obj.focus();
        }
    }
}

// ???????????
function isUnsignInt(value) {
	var pattern = /\d/;
	for (var i = 0; i < value.length; i++) {
		if (!value.charAt(i).match(pattern)) {
			return false;
		}
	}
	return true;
}

/*

IsFloat(string,string,int or string):(?????,+ or - or empty,empty or 0)

??????????????????????????+0?????+0

*/

function IsFloat(objStr,sign,zero)
{
    var reg;    
    var bolzero;    

    objStr=objStr.toString();      
    
    if((sign==null))
    {
        sign="+-";
    }
  
    if((zero==null))
    {
        bolzero=false;
    }
    else
    {
        zero=zero.toString();
        if(zero=="0")
        {
            bolzero=true;
        }
        else
        {
            //alert("??????0??????(??0)");
        }
    }    

    switch(sign)
    {
        case "+-":
            //???
            reg=/^((-?|\+?)\d+)(\.\d+)?$/;
            break;
        case "+": 
            if(!bolzero)           
            {
                //????
                reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                //????+0
                reg=/^\+?\d+(\.\d+)?$/;
            }
            break;
        case "-":
            if(!bolzero)
            {
                //????
                reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                //????+0
                reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
            }            
            break;
        default:
            //alert("??????????(??+?-)");
            return false;
            break;
    }
    var r=objStr.match(reg);
    if(r==null)
    {
        return false;
    }
    else
    {        
        return true;     
    }
}
function IsFloat2(s)
{
	var count = 0;
	var len = s.length;
	for(var i = 0; i < len; i++){
		if ((s.charAt(i) < '0' || s.charAt(i) > '9') && s.charAt(i) != '.'){
			return false;
		}
		if (s.charAt(i) == '.'){
			count++;
			if(count >= 2){
				return false;
			}
		}
	}
	return true;
}
function getJuLength(value){
	if(value==null || value.length<=0)
		return true;
	var ii=value.indexOf(".");
	var temp=value;
	if(ii>0)
		temp=value.substring(0,ii);
	if(temp.length>8)
		return false;
	return true;
}
  
function changeTab(obj,url){
     var oldSelect = document.all.selectTab;
     if(oldSelect != null){
        oldSelect.className="noSelectTab";
        oldSelect.id=""; 
        oldSelect.previousSibling.className = "noSelectTabLeft";
        oldSelect.nextSibling.className = "noSelectTabRight"; 
     }       
     obj.id = "selectTab"
     obj.className = "selectTab"
     obj.previousSibling.className = "selectTabLeft";
     obj.nextSibling.className = "selectTabRight";
     document.all.innerFrame.src=url;
    
}

function IsNum(s) {
    if (s == "null" || s == "undefined" || s.length < 1) {
        return false;
    }
    if (isNaN(parseInt(s))) {
        return false;
    } else {
        if ((parseInt(s) + "").length != s.length) {
            return false;
        } else {
            return true;
        }
    }
}

function Check(reg, str) {
    if (reg.test(str)) {
        return true;
    }
    return false;
}
//??
function CheckMobile(str) {
    var reg = /^\d{11,12}$/;
    return Check(reg, str);
}
function CheckZip(str) {
    var reg = /^\d{6}$/;
    return Check(reg, str);
}
 // ?????
function CheckCharOrNum(str) {
    var reg = /^\w+$/;
    return Check(reg, str);
}
// ??
function IsNumber(str) {
	if(str=="")
		return false;
	var temp="0123456789";
	for(var i=0;i<str.length;i++){
		if(temp.indexOf(str.charAt(i))<0){
			return false;
		}
	}
	return true;
}
function CheckChar(str) {
	if(str=="")
		return false;
	var temp="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	for(var i=0;i<str.length;i++){
		if(temp.indexOf(str.charAt(i))<0){
			return false;
		}
	}
	return true;
}
function isMobile(mobile){
	if (!IsNumber(mobile)) {
		return false;
	} else if (mobile.length < 11 || mobile.length > 12) {
		return false;
	} else {
		return true;
	}
	//var myreg = /^(((13[0-9]{1})|159|153|156|158|150)+\d{8})$/;
	//return myreg.test(mobile);
}

function validatePhone(obj){
	if(obj.length == 0){
	    return -1;
	}
	var patn = /^[0-9-\/]+$/;
	if(!patn.test(obj)) return 1;
	var s=obj.split('/');
	for(var i=0;i<s.length;i++){
		var s1=s[i].split('-');
		if(s1[0].length<7||s1[0].length>8)
			return 1;
	}	
	return 0;
}

function keyDown(nextValue) {
	if(window.ActiveXObject){//??IE??
	    if (event.keyCode == 13) {
	        nextValue.select();
	    }
	  }
}
//去掉所有的html标记 
function delHtmlTag(str) 
{ 
	return str.replace(/<[^>]+>/g,"");//
} 
// ???????
function listInput(input) {
	if (input.length == null) {
		var array = new Array();
		array.push(input);
		return array;
	}
	return input;
}

function isNotChinese(str)
{
    return !isChinese(str);
}

function isChinese(str){
  if(escape(str).indexOf("%u")!=-1) 
  { 
    return true; 
  } 
    return false; 
}

var theEvilString = new String("!@#$%^&*()/{}[]\\<>\"'?~`;:.");
function getIndexOfFirstEvilChar(str){
	for(var i = 0; i < str.length;i++){
		var theChar = str.charAt(i);
		if(theEvilString.indexOf(theChar) != -1)
			return i;
	}
	return -1;
}

function compareDate(date1,date2){
	if(date1.value!="" && date2.value!="") {
		var startStr = date1.value;
		var endStr = date2.value;
		var startYear = startStr.substring(0,4);
		var startMonth = startStr.substring(5,7);
		var startDay = startStr.substring(8,10);
		var startHour = startStr.substring(11,13);
		var startMin = startStr.substring(14,16);
		var startDate = startYear + startMonth + startDay + startHour + startMin;
		var endYear = endStr.substring(0,4);
		var endMonth = endStr.substring(5,7);
		var endDay = endStr.substring(8,10);
		var endHour = endStr.substring(11,13);
		var endMin = endStr.substring(14,16);
		var endDate = endYear + endMonth + endDay + endHour + endMin;
		if(parseInt(startDate,10) > parseInt(endDate,10)){
			return 1;
		} else if(parseInt(startDate,10) == parseInt(endDate,10)){
			return 0;
		} else {
			return -1;
		}
	} else {
		return 1;
	}
}

function compareDateTime(startStr,endStr){
	if(startStr!="" && endStr!="") {
		var startYear = startStr.substring(0,4);
		var startMonth = startStr.substring(5,7);
		var startDay = startStr.substring(8,10);
		var startHour = startStr.substring(11,13);
		var startMin = startStr.substring(14,16);
		var startDate = startYear + startMonth + startDay + startHour + startMin;
		var endYear = endStr.substring(0,4);
		var endMonth = endStr.substring(5,7);
		var endDay = endStr.substring(8,10);
		var endHour = endStr.substring(11,13);
		var endMin = endStr.substring(14,16);
		var endDate = endYear + endMonth + endDay + endHour + endMin;
		if(parseInt(startDate,10) > parseInt(endDate,10)){
			return 1;
		} else if(parseInt(startDate,10) == parseInt(endDate,10)){
			return 0;
		} else {
			return -1;
		}
	} else {
		return 1;
	}
}

function compareNow(date1){

	var now=new Date();
	var year=now.getFullYear();
	var month=now.getMonth()+1;
	var date=now.getDate();
	if(month<10){month="0"+month;}
	if(date<10){date="0"+date;}
	return compareDateTime(date1,year+"-"+month+"-"+date);
}


function getStrLength(sTargetStr){
	var sTmpStr, sTmpChar; 
	var nOriginLen = 0; 
	var nStrLength = 0; 

	sTmpStr = new String(sTargetStr); 
	nOriginLen = sTmpStr.length; 
	
	for ( var i=0 ; i < nOriginLen ; i++ ) { 
		sTmpChar = sTmpStr.charAt(i);
		if (escape(sTmpChar).length > 4) { 
			nStrLength += 2; 
		} else if (sTmpChar!='\r') { 
			nStrLength ++; 
		} 
	} 
	return nStrLength; 

}
function isSupportedImage(fileURL){
	var type = ".jpg,.gif";
	var imgUrl=fileURL.toLowerCase();
	var ext = imgUrl.substring(imgUrl.lastIndexOf('.'));
	if(type.indexOf(ext)!=-1)
	   return true;
	else 
	   return false;
}
/**
  * 删除所有项目
  *
  * oSelect: 源列表框对象 
  */
 function deleteAllItem(oSelect)
 {
     for(var i=0; i<oSelect.options.length; i++)
     {
         if(i>=0 && i<=oSelect.options.length-1)
         {
             oSelect.options[i] = null;
             i --;
         }
     }
 }
 
 function getPasswordStrength(pwd){
     var WEAK = '0';
     var NORMAL = '1';
     var STRONG = '2';
     var BEST = '3';
     var regText=/[a-zA-Z]/g;
     var regNum=/\d/g;
     var regSpecial=/[^a-zA-Z0-9]/g;
     if(pwd.length<8) return WEAK;
     if(pwd.match(regText)!=null&&pwd.match(regNum)==null&&pwd.match(regSpecial)==null||
     	   pwd.match(regText)==null&&pwd.match(regNum)!=null&&pwd.match(regSpecial)==null||
     	   pwd.match(regText)==null&&pwd.match(regNum)==null&&pwd.match(regSpecial)!=null)
     return WEAK;
     if(pwd.length>=8){
     	if(pwd.match(regText)!=null&&pwd.match(regNum)!=null&&pwd.match(regSpecial)==null||
     	   pwd.match(regText)==null&&pwd.match(regNum)!=null&&pwd.match(regSpecial)!=null||
     	   pwd.match(regText)!=null&&pwd.match(regNum)==null&&pwd.match(regSpecial)!=null)
     	return NORMAL;
     }
     if(pwd.length>=8&&pwd.length<14){
        if(pwd.match(regText)!=null&&pwd.match(regNum)!=null&&pwd.match(regSpecial)!=null)
           return STRONG;
     }
     if(pwd.length>=14){
        if(pwd.match(regText)!=null&&pwd.match(regNum)!=null&&pwd.match(regSpecial)!=null)
           return BEST;
     }
     return NORMAL;
 }
 
/**
 * 验证身份证号码,0:正确 1:位数不对 2:出生日期超出范围或含有非法字符 3:校验错误 4:地区非法
 * @param {Object} idcard
 */
function checkIdcard(idcard){

var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}; 

var idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地区检验
if(area[parseInt(idcard.substr(0,2))]==null) return 4;
//身份号码位数及格式检验
switch(idcard.length){
case 15:
if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
} else {
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
}
if(ereg.test(idcard)) return 0;
else return 2;
break;
case 18:
//18位身份号码检测
//出生日期的合法性检查 
//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
} else {
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
}
if(ereg.test(idcard)){//测试出生日期的合法性
//计算校验位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1 
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3 ;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y,1);//判断校验位
if(M == idcard_array[17]) return 0; //检测ID的校验位
else return 3;
}
else return 2;
break;
default:
return 1;
break;
}
}

function goShopping(url,type,from){
  var id = 0;
  if(type=='ACC3U1L')
     id =1;
  else if(type=='ACC3U2L')
     id =2; 
  else if(type=='ACC1U1L')
     id =3;
  else if(type=='ACC1U2L')
     id =4;
  else if(type=='SCM3U1L')
     id =5;
  else if(type=='SCM3U2L')
     id =6;  
  else if(type=='SCM1U1L')
     id =7;  
  else if(type=='SCM1U2L')
     id =8; 
  else if(type=='ACCSCM3U1L')
     id =9; 
  else if(type=='ACCSCM3U2L')
     id =10;      
  else if(type=='ACCSCM1U1L')
     id =11;  
  else if(type=='ACCSCM1U2L')
     id =12;        
  else if(type=='ACT20_1L')
     id =13;  
  else if(type=='ACT50_1L')
     id =14;   
  else if(type=='ACT100_1L')
     id =15;    
  else if(type=='ACT100_2L')
     id =16;                 
  else if(type=='ACT1000_1L')
     id =17; 
  else if(type=='ACT1000_2L')
     id =18;
                    
  else if(type=='ACT20_2L')
     id =19;              
  else if(type=='ACT50_2L')
     id =20; 
  else if(type=='UDUN')
     id =21;      
  else if(type=='UKEY')
     id =22;  
  else if(type=='ACT1_1L')
     id =23;     
  else if(type=='ACT1_2L')
     id =24; 
  if(from){
  	window.location=url+"/myaccount/shoppingCart.do?action=add&sid="+type+"&from="+from;
  } else {
  	window.location=url+"/myaccount/shoppingCart.do?action=add&sid="+type;
  }                     
}