//######################################################################
function PrintPage(id,type){      	var newWin	= window.open("print_page.aspx?id="+id+"&type="+type+"", "lhw", "width=700,height=700,toolbar=0,resizable=0,location=0,menubar=0,status=0,scrollbars=0");}
function textCounter(field, maxlimit) {	if (field.value.length > maxlimit){                         		field.value = field.value.substring(0, maxlimit); }}
function newWin(what,mWidth,mHeight){      	var newWin	= window.open(what, "lhw", "width="+mWidth+",height="+mHeight+",toolbar=0,resizable=0,location=0,menubar=0,status=0,scrollbars=0");   	newWin.focus();}
//######################################################################  
ImageArray	= new Array();
function BuildArray(){    
    if (document.cookie.indexOf('source=mc')==-1) {
        for (var i = 0;   i < arguments.length;  i++)
        {    
          eval('ImageArray["' + arguments[i] +	'0"] =	new Image()');
          eval('ImageArray["' + arguments[i] +	'0"].src = "images/nav_' +	arguments[i] + '_0.gif"');
          eval('ImageArray["' + arguments[i] +	'1"] =	new Image()');
          eval('ImageArray["' + arguments[i] +	'1"].src = "images/nav_' +	arguments[i] + '_1.gif"');
       }
   }
   else{
       for (var i = 0;   i < arguments.length;   i++)
       {
         eval('ImageArray["' + arguments[i] +	'0"] =	new Image()')
         eval('ImageArray["' + arguments[i] +	'0"].src = "images/m_card/nav_' +	arguments[i] + '_0.gif"')
         eval('ImageArray["' + arguments[i] +	'1"] =	new Image()')
         eval('ImageArray["' + arguments[i] +	'1"].src = "images/m_card/nav_' +	arguments[i] + '_1.gif"')
      }
   }
}
//######################################################################  
function Rollover(which){     if (document.images){      eval('document.frmMainHeader.Header1_img' + which + '.src = ImageArray["' +	which	+ '1"].src')   }}
function Rollout(which)  {     if (document.images){      eval('document.frmMainHeader.Header1_img' + which + '.src	= ImageArray["' + which +	'0"].src'); }}
//######################################################################
function SwapChars(TextBox){     var tmp = TextBox.value;    TextBox.value="";    for(i = 0; i < tmp.length; i ++) {       TextBox.value+="*";    }}
function UpdateHiddenPass(TextBox,HidenField){     HidenField.value = TextBox.value;}
function UpdateHiddenDates(FormObj){
  var Ar = new Date(GetTimeValu(FormObj.roomdate,0));
  FormObj.hdnInDate.value = Ar.getMonth()+1 + "/" + Ar.getDate() + "/" + Ar.getFullYear();
  var Dp = new Date(GetTimeValu(FormObj.roomdate,3));
  FormObj.hdnOutDate.value = Dp.getMonth()+1 + "/" + Dp.getDate() + "/" + Dp.getFullYear();
}

function UpdateHiddenCC_Numb(cc_type,hidden_card_number, text_box_card_number,init_value){
  if(text_box_card_number.value==init_value){ return true;}
  if(checkCard_internal(cc_type,text_box_card_number.value)){
    hidden_card_number.value=text_box_card_number.value;
    return true;
  }
  text_box_card_number.value=init_value;
//  error_label.value="Invalid number, CC was not updated";
  return false;

}
//######################################################################
function SetDate(selObj,indx,dateVal){  
  var mnObj=selObj[indx];
  var dyObj=selObj[indx+1]; 
  var yrObj=selObj[indx+2];  
  
  var dateObj = new Date(dateVal);
  var dy=dateObj.getDate();
  var yr=dateObj.getFullYear(); 
  var mn = dateObj.getMonth();  
  
  SetDayOptions(mn,dyObj,dateVal);  
  mnObj.options[mn].selected=true; 
  dyObj.options[dy-1].selected=true;  
  for(ln=0;ln<dyObj.options.length;ln++){    if(dyObj.options[ln].value==dy)dyObj.options[ln].selected=true;}    
  for(ln=0;ln<yrObj.options.length;ln++) {    if(yrObj.options[ln].value==yr)yrObj.options[ln].selected=true;}
}
//################################################################################################################################################
function getDaysOfMonth(mnIndx,TimeValu){
  var SelcDate = new Date(TimeValu); 
  var Year = SelcDate.getYear(); 
  var Mdays = new Array();  
  Mdays[0] = 31;Mdays[1] = 28;Mdays[2] = 31;Mdays[3] = 30;Mdays[4] = 31;  Mdays[5] = 30; Mdays[6] = 31;Mdays[7] = 31;Mdays[8] = 30;Mdays[9] = 31;Mdays[10] = 30; Mdays[11] = 31;  if ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 !=0))) Mdays[1] = 29;  
  return Mdays[mnIndx];
}
//################################################################################################################################################
function InitDateControl(DateGroup){  
    var Today = new Date();
    Today.setTime(Today.getTime() + 48 * 60 * 60 * 1000)
    var GrpTotal = DateGroup.length;
    for (var x=0;x<GrpTotal;x+=3){ 
      SetDate(DateGroup,x,Today); 
      Today.setTime(Today.getTime() + (24 * 60 * 60 * 1000));  
    }
//    UpdateHiddenDates(document.frmmain);
 }
//################################################################################################################################################
function SetDayOptions(mn,dyObj,dateVal){  
  var mndys = getDaysOfMonth(mn,dateVal);
  var dy;  
  for(dy = dyObj.options.length;dy>=0;dy--){dyObj.options[dy]=null;}  
  for(dy=0;dy<mndys;dy++){dyObj.options[dy]=new Option(dy+1,dy+1);}
}
//################################################################################################################################################
function DateRangeUpdate(DateGroup){
  var GrpTotal = DateGroup.length;
  var TodayDate= new Date(); 
  var TimeTobt = TodayDate.getTime() - (24 * 60 * 60 * 1000);
  
  if(GetTimeValu(DateGroup,0)< TimeTobt){ 
     SetDate(DateGroup,0,GetTimeValu(DateGroup,0)  + (365 * 24 * 60 * 60 * 1000));
  }
  else { 
    SetDate(DateGroup,0,GetTimeValu(DateGroup,0));
  }
  TimeTobt = GetTimeValu(DateGroup,0) + (24 * 60 * 60 * 1000);
  
  for (x=3;x<GrpTotal;x+=3){
    CurrTime = GetTimeValu(DateGroup,x);
    if(CurrTime < TimeTobt){
        SetDate(DateGroup,x,TimeTobt);
    }
    else {     
        SetDate(DateGroup,x,GetTimeValu(DateGroup,x));
   }        
    TimeTobt = GetTimeValu(DateGroup,x) + (24 * 60 * 60 * 1000);  
  }
  UpdateHiddenDates(document.frmmain);  
}
//################################################################################################################################################
function isLessThan(beginAry,endAry){   if(beginAry["year"] < endAry["year"]){ return 1;}   if(beginAry["month"] < endAry["month"] && beginAry["year"] <= endAry["year"]){return 1;}   if(beginAry["day"] < endAry["day"] && beginAry["month"] <= endAry["month"] && beginAry["year"] <= endAry["year"]){return 1;}   return 0;}
function GetTimeValu(Obj,indx){  var mn = Obj[indx].options.selectedIndex;  var dysel = Obj[indx+1].options.selectedIndex;  var dy = Obj[indx+1].options[dysel].value;  var yrsel = Obj[indx+2].options.selectedIndex;  var yr = Obj[indx+2].options[yrsel].value;  var retnDate = new Date(Number(yr),Number(mn),Number(dy));  return retnDate.getTime();}
function GetDateObj(Obj,indx){  var yrsel = Obj[indx+2].options.selectedIndex;  var yr = Obj[indx+2].options[yrsel].value;  var mn = Obj[indx].options.selectedIndex;  var dysel = Obj[indx+1].options.selectedIndex;  var dy = Obj[indx+1].options[dysel].value;  var retnDate = new Date(yr,mn,dy);retnDate.getTime();  return retnDate.getTime();}
function GetDateVals(mn,dy,yr){  var yrsel = yr.options.selectedIndex;  var yr = yr.options[yrsel].value;  var mnsel = mn.options.selectedIndex;  var mn  = mn.options[mnsel].value;  var dysel = dy.options.selectedIndex;  var dy = dy.options[dysel].value;  var rngvals = new Object;  return rngvals;}
//################################################################################################################################################
function checkCardNumWithMod10(cardNum) {
	var i;
	var cc = new Array(16);
	var checksum = 0;
	var validcc;

	for (i = 0; i < cardNum.length; i++) {cc[i] = Math.floor(cardNum.substring(i, i+1));	}
	for (i = (cardNum.length % 2); i < cardNum.length; i+=2) {
		var a = cc[i] * 2;
		if (a >= 10) {
			var aStr = a.toString();
			var b = aStr.substring(0,1);
			var c = aStr.substring(1,2);
			cc[i] = Math.floor(b) + Math.floor(c);
		} else {
			cc[i] = a;
		}
	}
	for (i = 0; i < cardNum.length; i++) {		checksum += Math.floor(cc[i]);	}
	validcc = ((checksum % 10) == 0);
	return validcc;
}

//################################################################################################################################################
function cleanCardNum(cardNum) {
	var i;
	var ch;
	var newCard = "";
	i = 0;
	while (i < cardNum.length) {
		ch = cardNum.substring(i, i+1);
		if ((ch >= "0") && (ch <= "9")) {			newCard += ch;		}
    else {
			// not a digit, so check if its a dash or a space
			if ((ch != " ") && (ch != "-")) {
// 				alert("The card number contains invalid characters.");
				return "";
			}
		}
		i++;
	}
	return newCard;
}
//################################################################################################################################################
function checkCard(cardType, cardNum) {
	var validCard;
	var cardLength;
	var cardLengthOK;
	var cardStart;
	var cardStartOK;

    cardName = cardType.options[cardType.selectedIndex].value;
	if (cardName.length == 0) 
	{
		alert(cardName + " Please select a card type.");
		return false;
	}
	
	validCard = cleanCardNum(cardNum);
	if (validCard != "") {
		cardStart = validCard.substring(0,1);
		cardStartOK = ( ((cardName == "VS") && (cardStart == "4")) ||
				((cardName== "MC") && (cardStart == "5")) ||
				((cardName== "AX") && (cardStart == "3")) ||
				((cardName== "DC") && (cardStart == "3")) ||
				((cardName== "DS") && (cardStart == "6")) );
		if (!(cardStartOK)) {
			alert("Please make sure the card number you've entered matched the card type you selected.");
			return false;
		}
		cardLength = validCard.length;
		cardLengthOK = ( ((cardName == "VS") && ((cardLength == 13) || (cardLength == 16))) ||
				 ((cardName== "MC") && (cardLength == 16)) ||
				 ((cardName== "AX") && (cardLength == 15)) ||
				 ((cardName== "DC") && (cardLength == 14)) ||
				 ((cardName== "DS") && (cardLength == 16)) );
		if (!(cardLengthOK)) {
			alert("Please make sure you've entered all of the digits on your card.");
			return false;
		}
        return true;
    }
    else{      return false;   }
}
//################################################################################################################################################
if (document.cookie.indexOf('source=mc')==-1) {  BuildArray('Find','Vacation','Offers','Club');}
else{    BuildArray('Find1','Vacation1','Offers1','Club1');}

//######################################################################
//################################################################################################################################################
function checkCard_internal(cardType, cardNum) {
	var validCard;
	var cardLength;
	var cardLengthOK;
	var cardStart;
	var cardStartOK;

    cardName = cardType.options[cardType.selectedIndex].value;
	if ((cardName != "VS") && (cardName != "MC") && (cardName != "AX") && (cardName != "DS")) {
//		alert(cardName + " Please select a card type.");
		return false;
	}
	
	validCard = cleanCardNum(cardNum);
	if (validCard != "") {
		cardStart = validCard.substring(0,1);
		cardStartOK = ( ((cardName == "VS") && (cardStart == "4")) ||
				((cardName== "MC") && (cardStart == "5")) ||
				((cardName== "AX") && (cardStart == "3")) ||
				((cardName== "DS") && (cardStart == "3")) ||
				((cardName== "DC") && (cardStart == "6")) );
		if (!(cardStartOK)) {
//			alert("Please make sure the card number you've entered matched the card type you selected.");
			return false;
		}
		cardLength = validCard.length;
		cardLengthOK = ( ((cardName == "VS") && ((cardLength == 13) || (cardLength == 16))) ||
				 ((cardName== "MC") && (cardLength == 16)) ||
				 ((cardName== "AX") && (cardLength == 15)) ||
				 ((cardName== "DS") && (cardLength == 14)) ||
				 ((cardName== "DC") && (cardLength == 16)) );
		if (!(cardLengthOK)) {
//			alert("Please make sure you've entered all of the digits on your card.");
			return false;
		}
        return true;
    }
    else{      return false;   }
}
