// Date validation from http://javascript.internet.com/forms/val-date.html
// Other validation:
// Found on http://developer.netscape.com/docs/examples/javascript/formval/overview.html
// (c) 1997 Netscape Communications Corporation

var digits = "0123456789";
var whitespace = " \t\n\r";

function isEmpty(s)  {   return ((s == null) || (s.length == 0))  }
function isDigit(c)  {   return ((c >= "0") && (c <= "9"))        }

function isWhitespace (s){
   var i;
   if (isEmpty(s)) return true;

   for (i = 0; i < s.length; i++)
   {   
      // Check that current character isn't whitespace.
      var c = s.charAt(i);
      if (whitespace.indexOf(c) == -1) return false;
   }
   return true;
}


function isInteger (s){
   var i;

   if (isEmpty(s)) 
      if (isInteger.arguments.length == 1) return false;
      else return (isInteger.arguments[1] == true);

   for (i = 0; i < s.length; i++)
   {   
      // Check that current character is number.
      var c = s.charAt(i);
      if (!isDigit(c)) return false;
   }
   // All characters are numbers.
   return true;
}

function isEmail (s) {
   if (isEmpty(s)) 
      if (isEmail.arguments.length == 1) return false;
      else return (isEmail.arguments[1] == true);
   
   if (isWhitespace(s)) return false;
    
   var i = 1;
   var sLength = s.length;

   // look for @
   while ((i < sLength) && (s.charAt(i) != "@"))    {  i++  }

   if ((i >= sLength) || (s.charAt(i) != "@")) return false;
   else i += 2;

   while ((i < sLength) && (s.charAt(i) != "."))    {  i++  }

   if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
   else return true;
}

// datetime parsing and formatting routimes. modify them if you wish other datetime format
function str2dt4 (str_datetime) {
	var re_date = /^(\d+)\/(\d+)\/(\d+)$/;
	if (!re_date.exec(str_datetime))
		return alert("Invalid Datetime format: "+ str_datetime);
	return (new Date (RegExp.$1, RegExp.$2-1, RegExp.$3));
}

// validate group booking number of pax.../
function gbValidate(sOrigAptAbbr, sDestAptAbbr, iResMinPax, iResMaxPax, iAgMinPax, iAgMaxPax, iDfltMinPax, iDfltMaxPax, sAlertMinPax, sAlertMaxPax, iNumAdults, iNumChildren){
	var iTtlPax;
	var iMinPax;
	var iMaxPax;
	var iCityPrMinPax;
	var iCityPrMaxPax;
	
	for(i=0;i<aDests.length;i++) {
		if(aDests[i]['OrigAbbr']==sOrigAptAbbr  && aDests[i]['Abbr']==sDestAptAbbr) {
			iCityPrMinPax = aDests[i]['GBMinPax'];
			iCityPrMaxPax = aDests[i]['GBMaxPax'];
		}		
	}
		
	switch (true){
		case iResMinPax > -1:
			iMinPax = iResMinPax;
			iMaxPax = iResMaxPax;
			break;
		case iCityPrMinPax > -1:
			iMinPax = iCityPrMinPax;
			iMaxPax = iCityPrMaxPax;
			break;
		case iAgMinPax > -1:
			iMinPax = iAgMinPax;
			iMaxPax = iAgMaxPax;
			break;
		default:
			iMinPax = iDfltMinPax;
			iMaxPax = iDfltMaxPax;
			break;
	}	
	
	sAlertMinPax = sAlertMinPax.replace("{subst}", iMinPax);
	sAlertMaxPax = sAlertMaxPax.replace("{subst}", iMaxPax); 
			
	if (iNumAdults != -1){
		iTtlPax = parseInt(iNumAdults) + parseInt(iNumChildren);		
	}	
	else{
		iTtlPax = parseInt(document.forms[0].txtNumAdults.value) + parseInt(document.forms[0].txtNumChildren.value);	
	}
	
	
	if (iTtlPax < iMinPax){
		alert(sAlertMinPax);
	}	
	else if ((iMaxPax != -1) && (iTtlPax > iMaxPax)){
		alert(sAlertMaxPax);
	}
	else if (iNumAdults != -1){
		//coming from the edit web.../
		SubmitForm();	
	}
	else {
		//coming from the IBE.../
		SubmitFormVF();	
	}		
}

// validate payment amount for adding a payment on the reservation.../
// Note: "dMinimumPerccent" is the percentage as a decimal.../
function validateGBResPayment(dPaymentAmount, dAmountOwe, dMinimumPercent, sAlertMinPay, sIsGroupBk, sAmtPay){
	var dMinimumAllowed;

	if (sIsGroupBk == "y" && sAmtPay == "y"){		
		dMinimumAllowed = Math.round((dAmountOwe * dMinimumPercent)*100)/100;	//returns the result to 2 decimal places.../
				
		if (sAmtPay == "y")	{
			// reset the payment amount.../
			dPaymentAmount = parseFloat(document.forms[0].txtTotalAmt.value)	
		}
								
		if (dPaymentAmount < dMinimumAllowed){
			sAlertMinPay = sAlertMinPay.replace("{subst}", dMinimumAllowed);
			alert(sAlertMinPay);
		}
		else {
			SubmitForm();	
		}
	}
	else {
		SubmitForm();	
	}
}
//  End -->




