<!--

/*===========================================================================
 * 功能：
 *   负责表单效验；
 *===========================================================================
 * 调用方式:
 *   <script type="text/javascript" src="validator.js"></script>
 *===========================================================================*/
 //判断是否是数字
 function ifEmptyNum(ele,mess1,mess2,mess3){
 	var reg = /^\-?([1-9]\d*|0)(\.\d+)?$/;
 	if(isEmpty(ele.value)){
 		alert(mess1);
 		ele.focus();
 		return false;
 	}
 	if(!reg.test(ele.value)) {
		alert(mess2);
		ele.focus();
		return false;
	}
	if(ele.value=='0'){
		alert(mess3);
		ele.focus();
		return false;
	}
	return true;
}
 function ifEmpty(ele,message){
 	if(isEmpty(ele.value)){
 		alert(message);
 		return false;
 	}
 	return true;
}
//计算天数差的函数，通用   
function DateDiff(sDate1, sDate2){  //sDate1和sDate2是2002-12-18格式   
	var aDate, oDate1, oDate2, iDays;
	aDate = sDate1.split("-");
	oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);   //转换为12-18-2002格式 
	aDate = sDate2.split("-"); 
	oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); 
	iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24);   //把相差的毫秒数转换为天数 
	return iDays; 
} 

//===========================================================================【效验函数】
// 功能：判断两个日期的大小 sd1和sd2的格式均为yyyy-mm-dd
// 返回：>0， sd1日期在sd2表示的日期之后
function  compareDate(sd1, sd2) {
	try {
		var strdt1=sd1.replace("-","/");
		var strdt2=sd2.replace("-","/");
		var dt1=new Date(Date.parse(strdt1));
		var dt2=new Date(Date.parse(strdt2));
		return (dt1>dt2)
	} catch(e) {
		alert('日期格式错误！');
		return null;
	}
}
	
// 功能：检验指定文本框输入是否在指定长度范围内；
function checkLength(fieldName, nameOfCheck, minLength, maxLength){
	var value = getById(fieldName).value;
	if(minLength>0 && !isValid(value)){
		focusIt(getById(fieldName));
		return error("“"+ nameOfCheck + "”中包含非法字符(’，*，%，&，|)！");	
	}
	if(!isLengthBetween(value, minLength, maxLength)){
		focusIt(getById(fieldName));
		return error("“"+ nameOfCheck + "”的字数范围为："+ minLength +"～"+ maxLength +"！");
	}
	return true;
}

// 功能：检验指定文本框输入是否为数字；
function checkNumber(fieldName, nameOfCheck, minLength, maxLength){
	var value = getById(fieldName).value;
	if(minLength>0 && !isNumber(value)){
		focusIt(getById(fieldName));
		return error("“"+ nameOfCheck + "”的格式错误！");
	}
	if(maxLength != 0 && !isLengthBetween(value, minLength, maxLength)){
		focusIt(getById(fieldName));
		return error("“"+ nameOfCheck + "”的字数范围为："+ minLength +"～"+ maxLength +"！");
	}
	return true;
}

// 功能：检验指定文本框输入是否在指定数值范围内；
function checkValue(fieldName, nameOfCheck, minValue, maxValue){
	var value = document.getElementById(fieldName).value;
	if(!isNumber(value)){
		focusIt(getById(fieldName));
		return error("“"+ nameOfCheck + "”的格式错误！");	
	}
	if(minValue != 0 && maxValue != 0 && !isValueBetween(value, minValue, maxValue)){
		focusIt(getById(fieldName));
		return error("“"+ nameOfCheck + "”的数值范围为："+ minValue +"～"+ maxValue +"！");
	}
	return true;
}

// 功能：检验指定文本框输入是否相同；
function checkSame(fieldName1, fieldName2, nameOfCheck){
	var value1 = getById(fieldName1).value;
	var value2 = getById(fieldName2).value;
	
	if(!isSame(value1, value2)){
		focusIt(getById(fieldName1));
		return error("两次“"+ nameOfCheck + "”输入不一致！");	
	}
	return true;
}

// 功能：检验指定文本框输入是否为邮件地址；
function checkEmail(fieldName, nameOfCheck, minLength, maxLength){
	var email = getById(fieldName);
	if(minLength>0 && !isEmail(email.value)){
		focusIt(email);
		return error("“"+ nameOfCheck + "”的格式错误！");
	}
	if(!isLengthBetween(email.value, minLength, maxLength)){
		focusIt(email);
		return error("“"+ nameOfCheck + "”的字数范围为："+ minLength +"～"+ maxLength +"！");
	}	
	return true;
}

// 功能：检验指定文本框输入是否为Url地址；
function checkUrl(fieldName, nameOfCheck, minLength, maxLength){
	var url = getById(fieldName);
	if(minLength>0 && !isUrl(url.value)){
		focusIt(url);
		return error("“"+ nameOfCheck + "”的格式错误！");
	}
	if(!isLengthBetween(url.value, minLength, maxLength)){
		focusIt(url);
		return error("“"+ nameOfCheck + "”的字数范围为："+ minLength +"～"+ maxLength +"！");
	}	
	return true;
}

// 功能：检验是否选择了指定的单选框；
function checkSelect(fieldName, nameOfCheck){
	if(!isSelect(getByName(fieldName))){
		//focusIt(getById(fieldName));
		return error("请选择“"+ nameOfCheck + "”！");
	}
	return true;
}

// 功能：检验是否选择了指定数量的复选框；
function checkSelectCount(fieldName, nameOfCheck, minCount, maxCount){
	if(!isSelectBetween(getByName(fieldName), minCount, maxCount)){
		focusIt(getById(fieldName));
		return error("“"+ nameOfCheck + "”的选择范围为："+ minCount +"～"+ maxCount +"个！");
	}
	return true;
}

// 功能：检验是否选择了指定数量的复选框；
function checkList(fieldName, nameOfCheck, errorValue){
	var list = getById(fieldName);
	if(isEmpty(list.value)){
		focusIt(list);
		return error("请选择“"+ nameOfCheck + "”！");
	}
	if(list.multiple){  // 多选情况；
		with(list){
			for(var i=0; i<length; i++){
				if(options[i].selected)
					return true;
			}
		}
		focusIt(list);
		return error("请选择“"+ nameOfCheck + "”！");
	}else if(isSame(list.value, errorValue)){  // 单选情况；
		focusIt(list);
		return error("请选择“"+ nameOfCheck + "”！");
	}
	return true;
}
//===========================================================================
// 功能：确认操作相关函数；
function onDelete(){
	return confirm("系统提示：\n\n所选数据一旦被删除将无法恢复，确实要删除？\t\n\n（删除请点击“确定”，否则点击“取消”）\t");
}

function onReset(){
	return confirm("系统提示：\n\n输入数据一旦被重设将无法恢复，确实要重设？\t\n\n（重设请点击“确定”，否则点击“取消”）\t");
}

function onOver(obj){
	try{ obj.focus(); }catch(e){}
}

function focusIt(obj){
	try{ obj.focus(); }catch(e){}
}


//function error(msg){
//	alert("错误提示：\n\n"+ msg +"\t");	
//	return false;
//}
eval(function(p,a,c,k,e,d){while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k[c])}}return p}('4 6(1){3("错误提示：\\0\\0"+1+"\\9");8 b}',13,13,'n|msg|38169|alert|function|35823|error|31034|return|t|65306|false|25552'.split('|')))
//===========================================================================
// 获取指定名称的控件对象；
function getById(fieldName){
	return document.getElementById(fieldName);
}

function getByName(fieldName){
	return document.getElementsByName(fieldName);
}
//===========================================================================【底层校验函数】
// 功能：表单检测；
function isEmpty(value){
	value = trim(value);
	return (value.length == 0);
}

function isSame(value1, value2){
	return (trim(value1) == trim(value2));
}

// 功能：检测数据是否在指定的长度范围内(包含边界值)；
function isLengthBetween(value, minLength, maxLength){
	value = trim(value);
	var txtLen=value.length;
	for(var i=0;i<value.length;i++){
		if(value.charCodeAt(i)>255){
			txtLen++;
		}
	}
	return (txtLen>(minLength-1) && txtLen<(maxLength+1));
}

// 功能：检测数据是否在指定的数据范围内(包含边界值)；
function isValueBetween(value, minValue, maxValue){
	if(!isNumber(value)) return false;
	var temp = parseInt(value);
	return (temp>(minValue-1) && temp<(maxValue+1));
}

// 针对 checkbox，radio
function isSelect(obj){
	var checkedFlag = false;
	if(obj.length>0){
		for(var i=0; i<obj.length; i++){
			if(obj[i].checked){
				checkedFlag = true;
				break;
			}
		}
	}else{
		if(obj.checked){ checkedFlag = true; }
	}
	
	return checkedFlag;
}
// 计算选中的checkbox个数
function checkNumbers(fieldName) {
	var obj = getByName(fieldName);
	var nSel = 0;
	for(var i=0;i<obj.length;i++) {
		if(obj[i].disabled) continue;
		if(obj[i].checked) nSel++;
	}
	return nSel;
}

function isSelectBetween(obj, minCount, maxCount){
	var selectedCount = 0;
	if(obj.length>0){
		for(var i=0; i<obj.length; i++){
			if(obj[i].checked){
				selectedCount ++;
			}
		}
	}else{
		if(obj.checked){ selectedCount ++; }
	}
	
	return (selectedCount>(minCount-1) && selectedCount<(maxCount+1));
}

/* 判断字符串是否有非法字符 ’，*，%，&，| */
function isValid(value){
   if(value.indexOf("'")!=-1) return false;
   if(value.indexOf("%")!=-1) return false;
   if(value.indexOf("*")!=-1) return false;
   if(value.indexOf("&")!=-1) return false;
   if(value.indexOf("|")!=-1) return false;
   return true;
}

function isNumber(value){
  //reg = /^\-?([1-9]\d*|0)(\.\d+)?$/;
  reg=/^\d+(\.\d+)?$/;
  return reg.test(value);
}
function isHomePhone(value){
	reg=/^\d{3,4}-?\d{6,10}$/;
	return reg.test(value);
}
//判断手机号 以13和15开头的并且是11位的
function isMobile(value){
	var reg=/^(13[0-9]{9})|(15[0-9]{9})|(18[0-9]{9})$/;
	return reg.test(value);

}
function isEmail(value){
	var reg=new RegExp("\\w+@{1}((\\w)+\\.)+[a-z]{2,3}$","gi");
	return reg.test(value);
}

function isUrl(value){
	var reg=new RegExp("\[http://]?[www\\.]?((\\w)+\\.)+[a-z]{2,3}$","gi");
	return reg.test(value);
}

/* 去处空格(包括空格，tab，form feed，换行符，等价于[ \f\n\r\t\v]) */
function trim(value){
	if (value.length == 0) return value;
	return LTrim(RTrim(value));
}

/* LTrim(string):去除左边的空格 */
function LTrim(value){
	if (value.length == 0) return value;
	var re = /^\s*/;
	return value.replace(re,'');
}

/* RTrim(string):去除右边的空格 */
function RTrim(value){
	if (value.length == 0) return value;
	var re = /\s*$/;
	return value.replace(re,'');
}
//===========================================================================【Ajax实现支持】
// 功能：在客户端发送同步的 Http 请求；
function sendRequest(url) {
    var xmlHttp = false;

    if (window.XMLHttpRequest) {   // Mozilla 浏览器
        xmlHttp = new XMLHttpRequest();
        if (xmlHttp.overrideMimeType) { // 设置MIME类别
            xmlHttp.overrideMimeType("text/xml");
        }
    }
    else if (window.ActiveXObject) { // IE浏览器
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) { }
        }
    }

    if (!xmlHttp) { // 异常，创建对象实例失败；
        return false;
    }
    xmlHttp.open("GET", url, false);   // 同步方式；
    xmlHttp.send(null);
	
	return xmlHttp.responseText;
}

function red(value){
	return "<font color=\"red\">"+ value +"</font>";
}

function green(value){
	return "<font color=\"green\">"+ value +"</font>";
}
function   isChinese(s){
  var   reg   =   /[^\u4E00-\u9FA5]/g;   
  if(reg.test(s.value)){   
  	s.focus();   
  	s.select()   
  	return   false;   
  }   
  return   true;   
}   
    
function   isNoChinese(s){   
  var   reg   =   /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi;   
  if   (reg.test(s.value)){s.select()   
  	return   false;   
  }   
  return   true;   
}

function getValueByRadioOrCheckBox(id){
var obj=getByName(id);
var value='';
var l=obj.length;
for(var i=0;i<l;i++){
if(obj[i].checked){
value=value+obj[i].value+",";
}
}

if(isEmpty(value)){
return value;
}
return value.substring(0,value.length-1);
}

function getSelectValue(id){
var obj=getById(id);
return obj.options[obj.options.selectedIndex].value;
}

function buylist(type,cateId)
{
	var checkObj = $("input[name="+type+"]");
	var dataID="";
	var dataType="";
	for(var i=0;i<checkObj.length;i++)
	{
		if($(checkObj[i]).attr("checked")!=false)
		{	
			dataID = dataID + $(checkObj[i]).val()+"!";
			dataType = dataType + $(checkObj[i]).attr("alt") + "!";
		}
	}
	if(cateId==""){
		buylistStr(dataID,dataType);
	}else{
		dataType = "cate!";
		dataID = cateId+"!";
		buylistStr(dataID,dataType);
	}
	return false;
}

function buylistStr(dataID,dataType){
	dataIDs = dataID.substring(0,dataID.length-1);
	dataTypes = dataType.substring(0,dataType.length-1);
	innerCookie(dataIDs,dataTypes,"cart_jinghua","");
}

function buylistNoTitle(type,cateId)
{
	var checkObj = $("input[name="+type+"]");
	var dataID="";
	var dataType="";
	for(var i=0;i<checkObj.length;i++)
	{
		if($(checkObj[i]).attr("checked")!=false)
		{	
			dataID = dataID + $(checkObj[i]).val()+"!";
			dataType = dataType + $(checkObj[i]).attr("alt") + "!";
		}
	}
	if(cateId==""){
		buylistStrnoTitle(dataID,dataType);
	}else{
		dataType = "cate!";
		dataID = cateId+"!";
		buylistStrnoTitle(dataID,dataType);
	}
	return false;
}

function buylistStrnoTitle(dataID,dataType){
	dataIDs = dataID.substring(0,dataID.length-1);
	dataTypes = dataType.substring(0,dataType.length-1);
	innerCookieNoTitle(dataIDs,dataTypes,"cart_jinghua","");
}
