function DisplayError(ElementId)
{
   var oElement = document.getElementById(ElementId);
   oElement.style.display = "block";  
}

function HideError(ElementId)
{
    var oElement1 = document.getElementById(ElementId);
    oElement1.style.display = "none"; 
} 




function jumpToAnchor() 
{
   window.location =  "#errorPanel";
} 

	    function toDate(dStr,format)
	    {
	        var now = new Date();
	        if (format == "h:m") 
	        {
 		        now.setHours(dStr.substr(0,dStr.indexOf(":")));
 		        now.setMinutes(dStr.substr(dStr.indexOf(":")+1));
 		        now.setSeconds(0);
 		        return now;
	        }
	        else
	        { 
		        return "Invalid Format";
		    }
        }
        var int1;	
        var sec=59;
	    var min;	    	    
	    function setVar(minute)
	    {	      
	      min=0;
	      sec=59;
	      clearInterval(int1);
	      min=minute;
	      min=min-1;	    	      
	      int1=self.setInterval("MiliSec()",1000)      
	    }

        function MiliSec()
	        {
	            if(min==00 && sec==00)
		        {		            
		            alert("Your have exceeded the given time limit. You will need to search again.")
		            clearInterval(int1)
		            window.location = "http://www.ticketstoamerica.co.uk/SessionExpired.aspx";
		        }
	            if(min==05 && sec==00)
	            {
	                var dstr;
	                var now5 = new Date();                                                          
                    hour3 =now5.getHours();
                    //holding the previous time before increasing 5 minutes.
                    curr_min = parseInt(5) + now5.getMinutes();
                    var prevTime=new Date();
                    dstr=hour3+":"+now5.getMinutes();
                    prevTime=toDate(dstr,"h:m");                                        
                    sec3 =  now5.getSeconds();
                      if (sec3>=60) { sec3 = -(60 - sec3); min3 = parseInt(min3)+1; }
                      if (curr_min>=60) { curr_min = -(60 - curr_min); hour3 = parseInt(hour3)+1; }
                      if (hour3>=24) { hour3 = -(24 - hour3); }
                      if (sec3<=9) { sec3="0"+sec3; }
                      if (curr_min<=9) { curr_min="0"+curr_min; }
                      if (hour3<=9) { hour3="0"+hour3; }
                      
                      
                      dstr=hour3+":"+curr_min;
                      var incrTime=new Date();
                      incrTime=toDate(dstr,"h:m");                      
                      
                     alert("You have 5 minutes remaining to complete this page.\nIf your page is not complete by "+ hour3+":"+curr_min +" then you will transferred to the home page.") 
                      //capturing current time
                      var currTime=new Date();
                      dstr=currTime.getHours()+":"+currTime.getMinutes();
                      currTime= toDate(dstr,"h:m");
                      //substracting current time from prev time                      
                      var difference =incrTime.getTime()-currTime.getTime();
                      var minutesDifference =Math.floor(parseFloat(difference)/1000/60);                                            
                      if(parseInt(minutesDifference)>0 && parseInt(minutesDifference)<=5)
                      { 
                        min=minutesDifference;
                        sec=60;
                      }
                      else
                      {
                        min=00;
                        sec=00;
                        alert("Your have exceeded the given time limit. You will need to search again.")
		                clearInterval(int1)
		                window.location = "http://www.ticketstoamerica.co.uk/SessionExpired.aspx";
                      }                                                         
	            }	            
	            if(sec>0)
		        {
		            document.getElementById("watch").value="This page will expire in "+min+":"+sec+" minutes.";
		            sec=sec-1;
		            if(sec<10)
		            {
		              sec="0"+sec;
		            }
		        }
		        else
		        {
		            sec=60;min=min-1;
		            if(min<10)
		            {
		              min="0"+min;
		            }
		            document.getElementById("watch").value="This page will expire in "+min+":"+sec+" minutes.";
		        }		        
            }	






function ValidatePassengerDetails()
{
  
    if(document.getElementById('ddlTitleR1').value=="Select")
    {
        alert('Please select passenger title');
        document.getElementById('ddlTitleR1').focus();
        return false; 
    }
    
    
    if(document.getElementById('txtFirstNameR1').value == '')
    {
        alert('Please enter passenger first name');
        document.getElementById('txtFirstNameR1').focus();
        return false; 
    }
    
    if(document.getElementById('txtLastNameR1').value == '')
    {
        alert('Please enter passenger last name');
        document.getElementById('txtLastNameR1').focus();
        return false; 
    }
    
    if(document.getElementById('txtDDNR1').value == '')
    {
        alert('Please enter date of birth in (DD/MM/YYYY)');
        document.getElementById('txtDDNR1').focus();
        return false; 
    }

    return true;
}


function ValidateCardHolderDetails(totalPassenger)
{
   //OnClientClick="return showConfirmation();" its require to check **************************************
   //check also disable page at the time of processing
 
    //alert(totalPassenger)
    for(var i=1; i<=totalPassenger; i++ )
    {
        //alert(i);
        if(document.getElementById('ddlTitleNR'+i).value=="Select")
        {
            alert('Please select passenger title');
            document.getElementById('ddlTitleNR'+i).focus();
            return false; 
        }
        
        
        if(document.getElementById('txtFirstNameNR'+i).value == '')
        {
            alert('Please enter passenger first name');
            document.getElementById('txtFirstNameNR'+i).focus();
            return false; 
        }
        
        if(document.getElementById('txtLastNameNR'+i).value == '')
        {
            alert('Please enter passenger last name');
            document.getElementById('txtLastNameNR'+i).focus();
            return false; 
        }
        
        if(document.getElementById('txtDDNR'+i).value == 'dd')
        {
            alert('Please enter date of birth in (DD/MM/YYYY)');
            document.getElementById('txtDDNR'+i).focus();
            return false; 
        }
        
        if(document.getElementById('txtMMNR'+i).value == 'mm')
        {
            alert('Please enter date of birth in (DD/MM/YYYY)');
            document.getElementById('txtMMNR'+i).focus();
            return false; 
        }
        if(document.getElementById('txtYYYYNR'+i).value == 'yyyy')
        {
            alert('Please enter date of birth in (DD/MM/YYYY))');
            document.getElementById('txtYYYYNR'+i).focus();
            return false; 
        }
        else
        {
           var len =  document.getElementById('txtYYYYNR'+i).value.length;
           if(len < 4)
           {
            alert('Please enter year in YYYY format');
            document.getElementById('txtYYYYNR'+i).focus();
            return false;
            }
        }
    }
    
    if(document.getElementById('txtHomePhone').value == '')
    {
        alert('Please enter home phone number');
        document.getElementById('txtHomePhone').focus();
        return false; 
    }
    
    if(document.getElementById('txtEmail').value == '')
    {
        alert('Please enter email address');
        document.getElementById('txtEmail').focus();
        return false; 
    }
    
    if(document.getElementById('txtVerifyEmail').value == '')
    {
        alert('Please verify email address');
        document.getElementById('txtVerifyEmail').focus();
        return false; 
    }
    
    if(document.getElementById('txtEmail').value.toLowerCase() != document.getElementById('txtVerifyEmail').value.toLowerCase())
    {
        alert('The two email addresses you have entered do not match. Please try again.');
        document.getElementById('txtVerifyEmail').focus();
        return false;
    }

    if(document.getElementById('ddlCardType').value == 'Please select a card type')
    {
        alert('Please select card type');
        document.getElementById('ddlCardType').focus();
        return false; 
    }
     
    if(!document.getElementById('chkTermAndCondition').checked)
    {
        alert('To continue, you must agree to the terms and conditions by clicking the check box');
        document.getElementById('chkTermAndCondition').focus();
        return false; 
    }
    
    if(!showConfirmation())
    {
        return false;
    
    }
    return true;

}

function showConfirmation()
{          
    if(confirm('We are now ready to process your booking. All booking details must be corrected before you proceed. To go back to the form and check these details, press CANCEL. To proceed with the booking, press OK. \n\nWe recommend you to keep the card details ready before clicking on the OK button, and complete the payment process as soon as possible. \n\nPlease do not click on BOOK NOW, REFRESH, BACK, or STOP buttons until the next page is displayed.\n\n NOTE: IF YOU ARE PAYING BY VISA DEBIT CARD, THEN PLEASE SELECT ELECTRON ON THE NEXT PAGE.'))
    {               
        blockPage();                
        return true;
    }
    else
    {               
        return false;
    }            
}



//----------------------------------------
//Validate Date dd/mm/yyyy
//-----------------------------------------
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) return String += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

//function isDate(dtStr)
//{
//  	var daysInMonth = DaysArray(12)
//	var pos1=dtStr.indexOf(dtCh)
//	var pos2=dtStr.indexOf(dtCh,pos1+1)
//	var strDay=dtStr.substring(0,pos1)

//	var strMonth=dtStr.substring(pos1+1,pos2)

//	var strYear=dtStr.substring(pos2+1)
//	strYr=strYear
//	
//	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
//	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
//	for (var i = 1; i <= 3; i++) {
//		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
//	}
//	month=parseInt(strMonth)
//	day=parseInt(strDay)
//	year=parseInt(strYr)
//	if (pos1==-1 || pos2==-1){
//		alert("The date format should be : dd/mm/yyyy")
//		return false
//	}
//	if (strMonth.length<1 || month<1 || month>12){
//		alert("Please enter a valid month")
//		return false
//	}
//	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
//		alert("Please enter a valid day")
//		return false
//	}
//	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
//		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
//		return false
//	}
//	/*if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
//	{
//		alert("Please enter a valid date")
//		return false
//	}*/
//return true
//}

function AirLineFailureChk(Fee)
{
    if(document.getElementById("chkairlinefailurefee").checked )
    {        
        document.getElementById("divAirlinefailurefee").style.display = "block"
        document.getElementById('lblAirlinefailurefee').innerHTML= document.getElementById("hdnfAirlinfailurefeesave").value;
        
    }
    else
    {
     if(document.getElementById('divAirlinefailurefee').style.display == "block")
    {
        adminfee=document.getElementById('lblAirlinefailurefee').innerHTML;            
    }
        document.getElementById("hdnfAirlinfailurefeesave").value=Number(adminfee).toFixed(2);
        document.getElementById("lblAirlinefailurefee").innerHTML="0.00"
    }
    
   CalcCCSurcharge();
   CalcTotalTicketPrice();     
 }
 
    
function CardTypeChange(ddlCardType)
{
   
    document.getElementById("hfCardTypeIndex").value=document.getElementById('ddlCardType').selectedIndex;  
    CalcCCSurcharge();
    CalcTotalTicketPrice();  
}

function CalcCCSurcharge()
{
    if(document.getElementById('ddlCardType').selectedIndex!=0)
    {
        var ddlCardType1=document.getElementById('ddlCardType').value;
        var arr = ddlCardType1.split("-");
        var ccSurchargeRate = arr[1];
        var CardTypeCharge = arr[2]; 
        if(ccSurchargeRate !='0.00')
        {    
            document.getElementById("divCardFee").style.display = "block";  
            var Price = document.getElementById('lblAmount').innerHTML;           
            var bookinfFee=0;
            var adminFee=0;
            if(document.getElementById('divAirlinefailurefee').style.display == "block")
            {
                var adminFee =document.getElementById('lblAirlinefailurefee').innerHTML;
            }
           
            if(document.getElementById('divBookingFee').style.display == "block")
            {
                bookinfFee=document.getElementById('lblBookingFee').innerHTML;
            }         
           
            var ccSurcharge=0;
           
            if(CardTypeCharge.toLowerCase()=='p')
            {
                document.getElementById("lblccrate").innerHTML ='( '+ccSurchargeRate+' % )';
                ccSurcharge = ( Number(Price) +  Number(bookinfFee)+ Number(adminFee)) * ( Number(ccSurchargeRate) / 100);
            }
            else
            {
                document.getElementById("lblccrate").innerHTML ='(GBP '+ccSurchargeRate+')';
                ccSurcharge = Number(ccSurchargeRate);
            } 
           
            
            document.getElementById("lblCCSurcharge").innerHTML = ccSurcharge.toFixed(2);                             
        }
        else
        {
            document.getElementById("lblCCSurcharge").innerHTML="0.00"
            document.getElementById("divCardFee").style.display = "none";           
        }       
    }
    else
    {
        document.getElementById("lblCCSurcharge").innerHTML="0.00"
        document.getElementById("divCardFee").style.display = "none"; 
    }
}



function CalcTotalTicketPrice()
{       
    var price = document.getElementById('lblAmount').innerHTML;   
    var bookingfee=0;
    var adminfee=0;            
    var creditcardsurcharge=0;    
    
    if(document.getElementById('divAirlinefailurefee').style.display == "block")
    {
        adminfee=document.getElementById('lblAirlinefailurefee').innerHTML;            
    }
    if(document.getElementById('divBookingFee').style.display == "block")
    {            
        bookingfee=document.getElementById('lblBookingFee').innerHTML;            
    }
       
    if(document.getElementById('divCardFee').style.display == "block")
    {
        creditcardsurcharge=document.getElementById('lblCCSurcharge').innerHTML;           
    }
    
    var totalTicketprice =Number(price) +  Number(bookingfee) + Number(creditcardsurcharge)+Number(adminfee);     
    document.getElementById('lblTotalAmt').innerHTML =totalTicketprice.toFixed(2); 
    
    document.getElementById('hfAdminFee').value =Number(adminfee).toFixed(2);
    document.getElementById('hfBookingFee').value =Number(bookingfee).toFixed(2); 
    document.getElementById('hfCCSurcharge').value =Number(creditcardsurcharge).toFixed(2); 
    document.getElementById('hfTotalAmt').value =totalTicketprice.toFixed(2); 
    

}


function findAndReplace(haystack, needle, replace)
{
  var cindex = 0;
  var rtnStr = "";
  while (cIndex = haystack.indexOf(needle) >= 0)
  {
    rtnStr  += haystack.substring(0, cIndex) + replace;
    haystack = haystack.substring(cIndex+needle.length);
  }
  return rtnStr;
}

function ConvertIntoCapital(elementID)
{

    var text=document.getElementById(elementID).value; 
    if (text.indexOf("'")!=-1)
    {
     alert("Please do not include any special character in the first or the last name."+'\n'+" If your name includes any special character, please replace it with a space.");
     
    while (text.indexOf("'") >= 0)
    {
         text=text.replace("'", " ");
    }
    }
    if (text.indexOf("-")!=-1)
    {
     alert("Please do not include any special character in the first or the last name."+'\n'+" If your name includes any special character, please replace it with a space.");
        while (text.indexOf("-") >= 0)
        {
             text=text.replace("-", " ");
        } 
     
     
    }
    document.getElementById(elementID).value=text.toUpperCase();
}

function CleanStringAndConvertIntoCapital(elementID)
{
    var text=document.getElementById(elementID).value;   
    document.getElementById(elementID).value=text.toUpperCase();
}

 
