
var undefined;

//验证有效字符串.
function ValidatorString(value) {
	var ErrStr;
	var ErrChar;
	var ArryErrStr;
		
	 if (value.length == 0) 
        return false;

	ErrChar="!@#$%^&*()_+|=\\~`;'[]{}\"':;,/<>?～！@#￥％^&×（）……＋|－＝、〔〕｛｝：“；‘《》？，。、0123456789";
	ErrStr="虚拟,傻冒,先生,小姐,代订";
	
	ArryErrStr = ErrStr.split(",");
	
	//是否含有非法字符
	for(var k=0;k<value.length;k++){
		if(ErrChar.indexOf(value.charAt(k))>-1){
			return false;
		}
	}
	//是否含有非法字符串
	for (k=0; k<ArryErrStr.length; k++){
		if (value.indexOf(ArryErrStr[k])>-1){
			return false;
		}
	}
	return true;
}




function IsDate(DateString , Dilimeter) 
{ 
		
		if (DateString==null) return false; 

		if (Dilimeter=='' || Dilimeter==null) 
			Dilimeter = '-'; 
			
		var tempy=''; 
		var tempm=''; 
		var tempd=''; 
		
		var tempArray; 
		
		var tmp1 = DateString.split('/');
	    if (tmp1.length > 1)
	    {
			DateString = trim(tmp1[2]) + '-'+tmp1[0] + '-' + tmp1[1]
	    }
	    		
		if (!isDateString(DateString))
		return false;
		
		if ( DateString.length<8 || DateString.length>10) 
			return false;  
		
		
		tempArray = DateString.split(Dilimeter); 
		
		if (tempArray.length!=3) 
			return false; 
		if (tempArray[0].length==4) 
			{ 
				tempy = tempArray[0]; 
				tempd = tempArray[2]; 
			} 
		else 
			{ 
				tempy = tempArray[2]; 
				tempd = tempArray[1]; 
			} 
		tempm = tempArray[1]; 
		
		
		var tDateString = tempy + '/'+tempm + '/'+tempd+' 8:0:0';//加八小时是因为我们处于东八区 
		
		var tempDate = new Date(tDateString); 
		
		if (isNaN(tempDate)) 
			return false; 
		
		if (((tempDate.getFullYear()).toString()==tempy) && (tempDate.getMonth()==parseInt(tempm,10)-1) && (tempDate.getDate()==parseInt(tempd,10))) 
			{ 
				return true; 
				
			} 
			else 
			{ 
				
				return false; 
			} 
} 

function compareDate(strDate1,strDate2,Days)
{
	var tmp1=strDate1.split('-');
	var tmp2=strDate2.split('-');
	var Days = Days;
	//var date1=eval('new Date('+tmp1[0]+','+tmp1[1]+','+tmp1[2]+')');
	//var date2=eval('new Date('+tmp2[0]+','+tmp2[1]+','+tmp2[2]+')');
	var date1 =strDate1.replace("-","/");
	date1 = date1.replace("-","/");
	var date2 =strDate2.replace("-","/");
	date2 = date2.replace("-","/");
	
	
     if (!isNaN(Date.parse(date1 ))) {
        var s = new Date(Date.parse(date1)) ;
        }
   
    
    if (!isNaN(Date.parse( date2 ))) {
        var e = new Date(Date.parse(date2)) ;
        }
            
    var temp =suycDateDiff( s, e, 'd', true ) ;
    
    if (temp >= Days)
    {
       return true;
    }
    else
    {
      return false;
    }
   
	
	/*if ((date2.valueOf()-date1.valueOf())>=Days*24*60*60*1000)
	{
		return true;
	}
	else
	{
		return false;
	}*/
}


function CheckDate(strDate1,strDate2)
{
	var strDate1 = trim(strDate1);
	var tmp1 = strDate1.split('/');
	if (tmp1.length > 1)
	{ 
	   strDate1 = trim(tmp1[2]) + '-'+tmp1[0] + '-' + tmp1[1]
	}
	var strDate2 = trim(strDate2);
	var tmp2 = strDate2.split('/');
	if (tmp2.length > 1)
	{ 
	   strDate2 = trim(tmp2[2]) + '-'+tmp2[0] + '-' + tmp2[1]
	}
	return(stringToDate(strDate1, true)<stringToDate(strDate2, true))
}


function isDateString(str) {
	var reg=/^\d{4}-[0-1]?\d{1}-[0-3]?\d{1}$/;
	return reg.test(str);
}


function stringToDate(sDate, bIgnore)
{	var bValidDate, year, month, day
	var iaDate = new Array(3)
	
	if (bIgnore) bValidDate = true
	else bValidDate = isDateString(sDate)
	
	if (bValidDate)
	{  iaDate = sDate.toString().split("-")
		year = parseFloat(iaDate[0])
		month = parseFloat(iaDate[1]) - 1
		day=parseFloat(iaDate[2])
		return (new Date(year,month,day))
	}
	else return (new Date(1900,1,1))
}


function compareToday(strDate2,serverDate) {
	var today=new Date();
	//var strDate1 = today.getFullYear() + "-" + (today.getMonth()+1) + "-" + today.getDate();
	var strDate1 = trim(serverDate);
	var tmp1 = serverDate.split('/');
	if (tmp1.length > 1)
	{ 
	   strDate1 = trim(tmp1[2]) + '-'+tmp1[0] + '-' + tmp1[1]
	}
	var strDate2 = trim(strDate2);
	var tmp2 = strDate2.split('/');
	if (tmp2.length > 1)
	{ 
	   strDate2 = trim(tmp2[2]) + '-'+tmp2[0] + '-' + tmp2[1]
	}
	return(stringToDate(strDate1, true)<=stringToDate(strDate2, true))	
}

function trim(str)
{
	var SubStr;
	SubStr=str;
	while (SubStr.length>0) {
   		if (SubStr.charAt(0)==" "){
			SubStr=SubStr.slice(1);
		}else{
			break;
		}
  	}
	while (SubStr.length>0) {
   		if (SubStr.charAt(SubStr.length-1)==" "){
			SubStr=SubStr.substr(0,SubStr.length-1);
		}else{
			break;
		}
  	}
  	return SubStr;
}

function IsSafeString(str) {
	var ErrStr;
	var ErrChar;
	var ArryErrStr;
	var getstr = trim(str);
	ErrChar="!@#$%^&*()_+|-=\\~`;'[]{}\"':,/<>?～！@#￥％^&×（）……＋|－＝、〔〕｛｝：“；‘《》？，。、";
	ErrStr="虚拟,傻冒,先生,小姐,代订";
	
	ArryErrStr = ErrStr.split(",");
	
	for(var k=0;k<getstr.length;k++){
		if(ErrChar.indexOf(getstr.charAt(k))>-1){
			return false;
		}
	}
	
	for (k=0; k<ArryErrStr.length; k++){
		if (getstr.indexOf(ArryErrStr[k])>-1){
			return false;
		}
	}
	return true;
}

function CheckSpecial(str) {
	var ErrStr;
	var ErrChar;
	var ArryErrStr;
	var getstr = trim(str);
	ErrChar="$^*_|=\\`\/#￥^&×|";
	ErrStr="傻冒";
	ArryErrStr = ErrStr.split(",");
	
	
	for(var k=0;k<getstr.length;k++){
		if(ErrChar.indexOf(getstr.charAt(k))>-1){
			return false;
		}
	}
	
	for (k=0; k<ArryErrStr.length; k++){
		if (getstr.indexOf(ArryErrStr[k])>-1){
			return false;
		}
	}
	return true;
}

function CheckSpecialSafeString(obj,Msg)
{
    if (obj !=null)
    {
       var strObjValue = obj.value;
       if (strObjValue !="")
	   {
	      if (!CheckSpecial(strObjValue))
	      {
	          alert( Msg);			
	          obj.focus();
	          return (false);
	      }
	   } 
    }    
    return true;
}





function CheckPassport(str) {
	var ErrStr;
	var ErrChar;
	var ArryErrStr;

	ErrChar="!@#$%^&*()_+|-=\\~`;'[]{}\"':;,/<>?～！@#￥％^&×（）……＋|－＝、〔〕｛｝：“；‘《》？，。、";
	ErrStr="虚拟,傻冒,先生,小姐,代订";
	
	ArryErrStr = ErrStr.split(",");
	
	
	for(var k=0;k<str.length;k++){
		if(ErrChar.indexOf(str.charAt(k))>-1){
			return false;
		}
	}
	
	for (k=0; k<ArryErrStr.length; k++){
		if (str.indexOf(ArryErrStr[k])>-1){
			return false;
		}
	}
	return true;
}


function CheckMobile(Mobile) {
    var filter=/^1[35]{1}[0123456789]{1}[0-9]{8}$/;
    if (!filter.test(Mobile))return false;
    return true;
}

function CheckChinese(str)
{
   	if (str.search(/[^\x00-\xff]/) != -1)
		return false;
	else
		return true;
}


function CheckMobileEn(Mobile) 
{
   if (Mobile.length < 5)return false;
   var ArryMobile = Mobile.split("-");
   var Len = ArryMobile.length;
	for (var k =0;k <Len;k++)
    {
      if (ArryMobile[k].replace(/\d/gi,"")!="")return false;           
    }
   return true;
}

function CheckPas(Pas) {
    var ArryPas = Pas.split("-")
    var Len = ArryPas.length;
    
    if (Len > 3 || Len < 2)return false;
    
    for (var k =0;k <Len;k++)
    {
      if (ArryPas[k].replace(/\d/gi,"")!="")return false;           
    }
    
    if (Len == 2)
    {
		if (ArryPas[0].length < 1 || ArryPas[0].length > 6)return false;
		if (ArryPas[1].length < 5 || ArryPas[1].length > 8)return false;
    }   
   
    if (Len == 3)
    {
          if (ArryPas[0].length > 6||ArryPas[0].length < 1)return false;
          if (ArryPas[1].length > 6||ArryPas[1].length < 1)return false;
          if (ArryPas[2].length < 5||ArryPas[2].length > 8)return false;    
    } 
    return true;
}


function CheckPhone(Phone) {
     var ArryPhone = Phone.split("-")
    var Len = ArryPhone.length;
    
    if (Len !=4)return false;
        
    for (var k =0;k <Len;k++)
    {
      if (ArryPhone[k].length > 0)
      {
		if (ArryPhone[k].replace(/\d/gi,"")!="")return false;   
      }              
    }
    
    if (ArryPhone[0].length > 0)
    {
		if (ArryPhone[0].length < 1 || ArryPhone[0].length > 6)return false;
    }
    
    if (ArryPhone[1].length > 0)
    {
		if (ArryPhone[1].length < 1 || ArryPhone[1].length > 6)return false;
    }
    
    if ((ArryPhone[0].length == 0) && (ArryPhone[1].length == 0))return false;
    
    if (ArryPhone[2].length < 1 || ArryPhone[1].length > 10)return false;
    
    if (ArryPhone[3].length > 0)
    {
		if (ArryPhone[3].length > 6 || ArryPhone[3].length < 1)return false;
    }  
    return true;
}




function CheckEmail(Email)
{
   //var filter=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
   //return(new RegExp(filter).test(Email));
	if (Email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
		return true;
	else
		return false;
}

function urlOpen(url)
{
	window.open(url);
}

function option_select(s1,s1_value)
	{
		
		for (i=0;i<s1.length;i++)
		{
			if (s1.options[i].value==s1_value)
			{
				s1.selectedIndex=i;
			}			
		}
	}
	function suycDateDiff( start, end, interval, wholedays ) {

    var iOut = 0;
    
    // Create 2 error messages, 1 for each argument. 
    /*var startMsg = "Check the Start Date and End Date\n"
        startMsg += "must be a valid date format.\n\n"
        startMsg += "Please try again." ;
		
    var intervalMsg = "Sorry the dateAdd function only accepts\n"
        intervalMsg += "d, h, m OR s intervals.\n\n"
        intervalMsg += "Please try again." ;*/

    var bufferA = Date.parse( start ) ;
    var bufferB = Date.parse( end ) ;
    	
    // check that the start parameter is a valid Date. 
    if ( isNaN (bufferA) || isNaN (bufferB) ) {
        //alert( startMsg ) ;
        return null ;
    }
	
    // check that an interval parameter was not numeric. 
    if ( interval.charAt == 'undefined' ) {
        // the user specified an incorrect interval, handle the error. 
        //alert( intervalMsg ) ;
        return null ;
    }
    
    var number = bufferB-bufferA ;
    
    // what kind of add to do? 
    switch (interval.charAt(0))
    {
        case 'd': case 'D': 
            iOut = parseInt(number / 86400000) ;
            if(wholedays) iOut += parseInt((number % 86400000)/43200001) ;
            break ;
        case 'h': case 'H':
            iOut = parseInt(number / 3600000 ) ;
            if(wholedays) iOut += parseInt((number % 3600000)/1800001) ;
            break ;
        case 'm': case 'M':
            iOut = parseInt(number / 60000 ) ;
            if(wholedays) iOut += parseInt((number % 60000)/30001) ;
            break ;
        case 's': case 'S':
            iOut = parseInt(number / 1000 ) ;
            if(wholedays) iOut += parseInt((number % 1000)/501) ;
            break ;
        default:
        // If we get to here then the interval parameter
        // didn't meet the d,h,m,s criteria.  Handle
        // the error. 		
        //alert(intervalMsg) ;
        return null ;
    }
    
    
    return iOut ;
}



function isChinaIDCard(sNo)
{
    sNo = sNo.toString()
    if (sNo.length==18)
    {
       var a,b,c
       if (!checkSum(sNo.substr(0,17))) {return false}
       a=parseInt(sNo.substr(0,1))*7+parseInt(sNo.substr(1,1))*9+parseInt(sNo.substr(2,1))*10;
       a=a+parseInt(sNo.substr(3,1))*5+parseInt(sNo.substr(4,1))*8+parseInt(sNo.substr(5,1))*4;
       a=a+parseInt(sNo.substr(6,1))*2+parseInt(sNo.substr(7,1))*1+parseInt(sNo.substr(8,1))*6; 
       a=a+parseInt(sNo.substr(9,1))*3+parseInt(sNo.substr(10,1))*7+parseInt(sNo.substr(11,1))*9; 
       a=a+parseInt(sNo.substr(12,1))*10+parseInt(sNo.substr(13,1))*5+parseInt(sNo.substr(14,1))*8; 
       a=a+parseInt(sNo.substr(15,1))*4+parseInt(sNo.substr(16,1))*2;
       b=a%11;
       if (b==2)
       {
          c=sNo.substr(17,1).toUpperCase();
       }
       else
       {
         c=parseInt(sNo.substr(17,1));
       }
       
       switch(b)
       {
         case 0: if ( c!=1 ) {return false;}break;
         case 1: if ( c!=0 ) {return false;}break;
         case 2: if ( c!="X") {return false;}break;
         case 3: if ( c!=9 ) {return false;}break;
         case 4: if ( c!=8 ) {return false;}break;
         case 5: if ( c!=7 ) {return false;}break;
         case 6: if ( c!=6 ) {return false;}break;
         case 7: if ( c!=5 ) {return false;}break;
         case 8: if ( c!=4 ) {return false;}break;
         case 9: if ( c!=3 ) {return false;}break;
         case 10: if ( c!=2 ){return false}
      }
   }
   else
   {
       if (!checkSum(sNo)) {return false} 
   }

   switch(sNo.length)
   {
      case 15: if (isValidDate( parseInt(sNo.substr(6,2),10),parseInt(sNo.substr(8,2),10),parseInt(sNo.substr(10,2),10))) {return true}
      case 18: if (isValidDate( parseInt(sNo.substr(6,2),10),parseInt(sNo.substr(8,2),10),parseInt(sNo.substr(10,2),10))) {return true}
   }
   return false
}


function checkSum(str)
{
   var bln=true;
   if(str=="")
   {
     bln=false;
     return bln;
   }
   
   var stra=new String(str);
   for(i=0;i<stra.length;i++)
   {
      var a=stra.substr(i,1);
      if(!(a=="0" || a=="1" || a=="2" || a=="3" || a=="4" || a=="5" || a=="6" || a=="7" || a=="8" || a=="9"))
      {
         bln=false;
         break;
      } 
   }

   return bln;

}



function isValidDate(iY, iM, iD) 
{ 
   if ( iY != undefined && !isNaN(iY) && iY >=0 && iY<=9999 && iM != undefined && !isNaN(iM) && iM >=1 && iM<=12 && iD != undefined && !isNaN(iD) && iD >=1   && iD<=31  )  
   { 
       if (iY<50) 
       {
          iY = 2000+iY;
       }
       else if (iY<100) 
       {
          iY=1900+iY; 
       }
       if (iM == 2  && (isLeapYear(iY)  && iD > 29 || !isLeapYear(iY) && iD>28) || iD == 31 && (iM<7 && iM%2==0 || iM>7 && iM%2==1) ) 
       { 
           return false ; 
       }
       else
       {
           return true;
       }
   }
   else
   { 
      return true;
   }
} 

function isLeapYear(y)
{
    if(0==y%4&&((y%100!=0)||(y%400==0))) return true;else return false;
}



function CheckName(GuestName) {
	var ErrStr;
	var ErrChar;
	var ArryErrStr;

	ErrChar="!@#$%^&*()_+|=\\~`;'[]{}\"':;,/<>?～！@#￥％^&×（）……＋|－＝、〔〕｛｝：“；‘《》？，。、0123456789";
	ErrStr="虚拟,傻冒,先生,小姐,代订";
	
	ArryErrStr = ErrStr.split(",");
	
	//是否含有非法字符
	for(var k=0;k<GuestName.length;k++){
		if(ErrChar.indexOf(GuestName.charAt(k))>-1){
			return false;
		}
	}
	//是否含有非法字符串
	for (k=0; k<ArryErrStr.length; k++){
		if (GuestName.indexOf(ArryErrStr[k])>-1){
			return false;
		}
	}
	return true;
}


function textCounter(field,maxlimit) 
{ 
  if (field.value.length > maxlimit) 
  {
     field.value = field.value.substring(0, maxlimit); 
  }
} 

//onKeyDown="textCounter(this.form.message,this.form.remLen,125);" onKeyUp="textCounter(this.form.message,this.form.remLen,125);"


// -----------------------------------
var AreaNull = new Array(new Array("", (typeof(HOTEL_AreaNull1) == "undefined" ? "" : HOTEL_AreaNull1)));
var AreaNull1 = new Array(new Array("", (typeof(HOTEL_AreaNull2) == "undefined" ? "" : HOTEL_AreaNull2)));
function changeSelect(selectCtrl, itemName)
{
	var i;
	var checkstr;
	var citystr="";
	var tempstr="";
	var j;
	var k;
	//if (itemName=="")
	//{
	//	return false;
	//}
	for (i=0;i<document.HotSrch.checkarea.length;i++)
	{
		if (document.HotSrch.checkarea[i].checked)
		{
			checkstr=document.HotSrch.checkarea[i].value;
		}
	}
	if (document.HotSrch.area_id.length>0)
	{
		k=document.HotSrch.area_id.length;
		for (i=0;i<=k;i++)
		{
			document.HotSrch.area_id.remove(0);
		}
	}
	if (checkstr=="1")
	{	
		i=CityId.toLowerCase().search(","+itemName.toLowerCase()+",");
		j=CityId.indexOf(",)",i);
		tempstr=CityId.substring(i,j);
		i=tempstr.lastIndexOf(",")+1;
		citystr=tempstr.substr(i);
		if(CityId.toLowerCase().search(","+itemName.toLowerCase()+",")>=0)
		{
			var itemArray = eval("AreaList"+citystr);
		}
		else
		{
			var itemArray = AreaNull;
		}
		for(i=selectCtrl.options.length;i>=0;i--)
		{
			selectCtrl.options[i] = null;
		}
		for(i=0;i<itemArray.length;i++)
		{
			selectCtrl.options[i] = new Option(itemArray[i][1]);
			if(itemArray[i][0]!=null)
			{
				selectCtrl.options[i].value = itemArray[i][0];
			}
		}
	}
	else
	{
		i=CityId1.toLowerCase().search(","+itemName.toLowerCase()+",");
		j=CityId1.indexOf(",)",i);
		tempstr=CityId1.substring(i,j);
		i=tempstr.lastIndexOf(",")+1;
		citystr=tempstr.substr(i);
		if(CityId1.toLowerCase().search(","+itemName.toLowerCase()+",")>=0)
		{
			var itemArray = eval("SowntownList"+citystr);
		}
		else
		{
			var itemArray = AreaNull1;
		}
		for(i=selectCtrl.options.length;i>=0;i--)
		{
			selectCtrl.options[i] = null;
		}
		for(i=0;i<itemArray.length;i++)
		{
			selectCtrl.options[i] = new Option(itemArray[i][1]);
			if(itemArray[i][0]!=null)
			{
				selectCtrl.options[i].value = itemArray[i][0];
			}
		}
	}
}

function SetCheck(name)
{
	var obj = document.getElementById(name);
	if ( obj == null )
	{
	}
	else
	{
		if ( obj.checked )
		{
			obj.checked = false;
		}
		else
		{
			obj.checked = true;
		}
	}
}


function Waiting(objToHide)
{
    document.getElementById(objToHide).style.display = 'none';
    var Waiter = document.getElementById("Wait");
	Waiter.style.display = 'block';
}

