// JavaScript Document

function GetInputDate(t)
{
	if(!t.length) return null;
	if(!t.match(/!|\//)) return null;
	var rgt=t.split(/!|\//);	
	//if(rgt[0]>31 || rgt[0]<1 || rgt[0].length>2 ) return null;
	if(rgt[0]>12 || rgt[0]<1 || rgt[0].length>2 ) return null;
	if(rgt[1]>50 || rgt[1]<08 ) return null;
	return 1;	
}

function GetInputStartDate(t)
{
	if(!t.length) return null;
	if(!t.match(/!|\//)) return null;
	var rgt=t.split(/!|\//);	
	//if(rgt[0]>31 || rgt[0]<1 || rgt[0].length>2 ) return null;
	if(rgt[0]>12 || rgt[0]<1 || rgt[0].length>2 ) return null;
	if(rgt[1]>08 || rgt[1]<01 ) return null;
	return 1;	
}

function addZeroesToPrecision(inputNum, desiredPrecision){
 var numString = inputNum + "";
 var afterDecimalString = numString.substring(numString.search(/\./) + 1);
 while (afterDecimalString.length < desiredPrecision) {
   afterDecimalString += "0";
   numString += "0";
 }
 return(numString);
}


function fixCreditCard(fld)
{ // tenacious credit card correction; fieldname isn't a big consideration, probably only one card per form 
  //if(!fld.value.length||fld.disabled) return true; // blank fields are the domain of requireValue 
  var val= fld.value, ctype= 'credit card';
  val= val.replace(/\D/g,'');
  var prefix2= parseInt(val.substr(0,2));
  if( val.substr(0,1) == '4' )
  { // Visa
    ctype= 'Visa\xae';
    if( val.length == 16 );
    else if( val.length == 13 ); // very old #, should be reassigned
    else if( val.length < 13 )
    { status= 'The Visa\xae number you provided is not long enough.'; return false; }
    else if( val.length > 16 )
    { status= 'The Visa\xae number you provided is too long.'; return false; }
    else
    { status= 'The Visa\xae number you provided is either not long enough, or too long.'; return false; }
  }
  else if( prefix2 >= 51 && prefix2 <= 55 )
  { // MC
    ctype= 'MasterCard\xae';
    if( val.length < 16 )
    { status= 'The MasterCard\xae number you provided is not long enough.'; return false; }
    else if( val.length > 16 )
    { status= 'The MasterCard\xae number you provided is too long.'; return false; }
  }
  else if( (prefix2 == 34) || (prefix2 == 37) )
  { // AmEx
    ctype= 'American Express\xae card';
    if( val.length < 15 )
    { status= 'The American Express\xae card number you provided is not long enough.'; return false; }
    else if( val.length > 15 )
    { status= 'The American Express\xae card number you provided is too long.'; return false; }
  }
  else if( val.substr(0,4) == '6011' )
  { // Novus/Discover
    ctype= 'Discover\xae card';
    if( val.length < 16 )
    { status= 'The Discover\xae card number you provided is not long enough.'; return false; }
    else if( val.length > 16 )
    { status= 'The Discover\xae card number you provided is too long.'; return false; }
  }
  else
  { // other
    if( val.length < 13 )
    { status= 'The credit card number you provided is not long enough.'; return false; }
    if( val.length > 19 )
    { status= 'The credit card number you provided is too long.'; return false; }
  }
  var sum= 0, dbl= false;
  for(var i= val.length-1; i >= 0; i--)
  {
    var digit= parseInt(val.charAt(i))*((dbl=!dbl)?1:2);
    sum+= ( digit > 9 ? (digit%10)+1 : digit );
  }
  if(sum%10)
  {
    status= 'The '+ctype+' number you provided is not valid.\nPlease double-check it and try again.';
    return false;
  }
  fld.value= val;
  return true;
}

function validatefrm()
{
	if(document.frmAB.airport.value=="")
	{
		alert("Please choose airport");
		document.frmAB.airport.focus();
		return false;		
	}
	if(document.frmAB.postcode.value=="")
	{
		alert("Please choose postcode");
		document.frmAB.postcode.focus();
		return false;		
	}
	if(document.frmAB.car.value=="")
	{
		alert("Please choose car");
		document.frmAB.car.focus();
		return false;		
	}
	if(document.frmAB.journey.value=="")
	{
		alert("Please choose journey type");
		document.frmAB.journey.focus();
		return false;		
	}
	
	if(document.frmAB.payment.value=="")
	{
		alert("Please choose payment");
		document.frmAB.payment.focus();
		return false;		
	}
	
	/*if(document.frmAB.payment.value != "" && document.getElementById("payment_method").style.display != 'none')
	{
		if(document.frmAB.vName.value == '')
		{
			alert("Please enter name of cardholder");
			document.frmAB.vName.focus();
			return false;
		}
		if(document.frmAB.iCcNo.value == '')
		{
			alert("Please enter card number");
			document.frmAB.iCcNo.focus();
			return false;
		}
		if(isNaN(document.frmAB.iCcNo.value))
		{
			alert("Please enter card number in digit only");
			document.frmAB.iCcNo.focus();
			return false;
		}
		if(fixCreditCard(document.frmAB.iCcNo) != true)
		{
			alert("Please enter valid card number");
			document.frmAB.iCcNo.focus();
			return false;
		}
		if(document.frmAB.payment.value == 'Switch' || document.frmAB.payment.value == 'Solo' )
		{
			if(document.frmAB.vStartDate.value == 'mm/yy')
			{
				alert("Please enter start date of card");
				document.frmAB.vStartDate.focus();
				return false;
			}
			if(GetInputStartDate(document.frmAB.vStartDate.value) != 1 )
			{
				alert("Please enter proper start date of card");
				document.frmAB.vStartDate.focus();
				return false;
			}
		}
		if(document.frmAB.vExpDate.value == 'mm/yy')
		{
			alert("Please enter expire date of card");
			document.frmAB.vExpDate.focus();
			return false;
		}
		if(GetInputDate(document.frmAB.vExpDate.value) != 1 )
		{
			alert("Please enter proper expire date of card");
			document.frmAB.vExpDate.focus();
			return false;
		}
		
		if(document.frmAB.iCSC.value == '')
		{
			alert("Please enter Card Security Value");
			document.frmAB.iCSC.focus();
			return false;
		}
		if(isNaN(document.frmAB.iCSC.value))
		{
			alert("Please enter Card Security Value");
			document.frmAB.iCSC.focus();
			return false;
		}
		
		if(document.frmAB.iCSC.value.length != 3)
		{
			alert("Please enter proper Card Security Value");
			document.frmAB.iCSC.focus();
			return false;
		}
		if(document.frmAB.payment.value == 'Switch' || document.frmAB.payment.value == 'Solo' )
		{
			if(document.frmAB.vIssueNo.value == '')
			{
				alert("Please enter issue no of card");
				document.frmAB.vIssueNo.focus();
				return false;
			}
			if(isNaN(document.frmAB.vIssueNo.value))
			{
				alert("Please enter issue no of card in digit only");
				document.frmAB.vIssueNo.focus();
				return false;
			}
		}
	}
	else
	{
		alert("Please select payment option from frop down box")	;
		document.frmAB.payment.focus();
		return false;
	}
	*/
	document.frmAB.Final_Price.value = document.getElementById("special_price").innerHTML;
	return true;
}
function chkrate1(val1,page_val)
{
	
	//	+'&cdtype='+document.frmAB.payment.value
	
	document.frmAB.airport.value = val1;
	if(document.frmAB.airport.value != '' && document.frmAB.postcode.value != '' && document.frmAB.car.value != '' && document.frmAB.journey.value != '')
	{
		//document.getElementById("carrate").style.display = '';
		location.href = page_val+'?airport_val='+document.frmAB.airport.value+'&car_val='+document.frmAB.car.value+'&postcode_val='+document.frmAB.postcode.value+'&journey_val='+document.frmAB.journey.value+'#confbook'; 
		return false;		
	}
	/*if(document.frmAB.airport.value == '' || document.frmAB.postcode.value == '' || document.frmAB.car.value != '' || document.frmAB.journey.value == '')
	{
		document.getElementById("carrate").style.display = 'none';
	}*/
}
function chkrate2(val2,page_val)
{
	document.frmAB.postcode.value = val2;
	if(document.frmAB.airport.value != '' && document.frmAB.postcode.value != '' && document.frmAB.car.value != '' && document.frmAB.journey.value != '')
	{
		//document.getElementById("carrate").style.display = '';
		location.href = page_val+'?airport_val='+document.frmAB.airport.value+'&car_val='+document.frmAB.car.value+'&postcode_val='+document.frmAB.postcode.value+'&journey_val='+document.frmAB.journey.value+'#confbook'; 
		return false;		
	}
	/*if(document.frmAB.airport.value == '' || document.frmAB.postcode.value == '' || document.frmAB.car.value != '' || document.frmAB.journey.value == '')
	{
		document.getElementById("carrate").style.display = 'none';
	}*/
}
function chkrate3(val3,page_val)
{
	document.frmAB.car.value = val3;
	if(document.frmAB.airport.value != '' && document.frmAB.postcode.value != '' && document.frmAB.car.value != '' && document.frmAB.journey.value != '')
	{
		//document.getElementById("carrate").style.display = '';
		location.href = page_val+'?airport_val='+document.frmAB.airport.value+'&car_val='+document.frmAB.car.value+'&postcode_val='+document.frmAB.postcode.value+'&journey_val='+document.frmAB.journey.value+'#confbook'; 
		return false;		
	}
	/*if(document.frmAB.airport.value == '' || document.frmAB.postcode.value == '' || document.frmAB.car.value != '' || document.frmAB.journey.value == '')
	{
		document.getElementById("carrate").style.display = 'none';
	}*/
}
function chkrate4(val4,page_val)
{
	document.frmAB.journey.value = val4;
	if(document.frmAB.airport.value != '' && document.frmAB.postcode.value != '' && document.frmAB.car.value != '' && document.frmAB.journey.value != '')
	{
		//document.getElementById("carrate").style.display = '';
		location.href = page_val+'?airport_val='+document.frmAB.airport.value+'&car_val='+document.frmAB.car.value+'&postcode_val='+document.frmAB.postcode.value+'&journey_val='+document.frmAB.journey.value+'&payment_val='+document.frmAB.payment.value+'#confbook'; 
		return false;		
	}
	/*if(document.frmAB.airport.value == '' || document.frmAB.postcode.value == '' || document.frmAB.car.value != '' || document.frmAB.journey.value == '')
	{
		document.getElementById("carrate").style.display = 'none';
	}*/
}

function payment_showhide(pay_val,page_val,org_price)
{
	if(pay_val != '')
	{
		//alert(pay_val);
		//document.getElementById("payment_method").style.display = '';
		if(pay_val == 'Switch' || pay_val == 'Solo')
		{
			//document.getElementById("Payment_Switch").style.display = '';
			//document.getElementById("startdate").style.display = '';
			document.getElementById("special_price").innerHTML = org_price;
		}
		else
		{
			if(org_price == document.getElementById("special_price").innerHTML)
			{
				document.getElementById("special_price").innerHTML = Number(document.getElementById("special_price").innerHTML) + Number(5) + '.00';
			}
			//document.getElementById("Payment_Switch").style.display = 'none';
			//document.getElementById("startdate").style.display = 'none';
		}
	}
	/*else
	{
		//document.getElementById("payment_method").style.display = 'none';
		//document.getElementById("startdate").style.display = 'none';
	}*/

}

