var dayDiff = dateDifference('1 Jan 2000',new Date());



function isArray(obj){
  return(typeof(obj.length)=="undefined")?false:true;
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}


//  Modififed on : 28/01/2010
//  Purpose : This function is called when user change region drop down we need amend this function
//            because now we have just one dropdown for region and park            
//


function regionPick(obj,dayDiff){
    
    var userSelectedDate
    userSelectedDate=document.getElementById("date").value;

    var i, val, oOption, elSel;
    val = obj.options[obj.selectedIndex].value;
    if (val=='') return;
    
    var selectedRegArr = val.split('|');
    val = selectedRegArr[0];

    elSel = document.getElementById("park");  

    for(i=elSel.options.length; i>=0; i--){
        elSel.remove(i);
    }

    // condition check if user selected region
    if(selectedRegArr[1] != "0") {
        oOption = document.createElement("option");
        oOption.text = "selected park";
        oOption.value = selectedRegArr[1];
        try {elSel.add(oOption, null);}
        catch(ex) { elSel.add(oOption);}
    }
    else{
        oOption = document.createElement("option");
        oOption.text = "All Parks";
        oOption.value = "0";
        try {elSel.add(oOption, null);}
        catch(ex) { elSel.add(oOption);}    
    }


    if(selectedRegArr[1] != "0")          
        Month_Of_Arrival(dayDiff,'By Park')
    else
        Month_Of_Arrival(dayDiff,'By Region')
                    
    datePick(dayDiff);
}


// End of my code 







/**/
function regionPanelPrepopulateData(regionId,dayDiff){
  var userSelectedDate
  userSelectedDate=document.getElementById("date").value;

  var i, val, oOption, elSel;
  val = regionId;
  elSel = document.getElementById("park")  
  
  for(i=elSel.options.length; i>=0; i--){
   elSel.remove(i);
  }

  
  if(val!='NULL' || val!='' ){
  oOption = document.createElement("option");

// This code is checking if user has selected norfolk or hampshire region then down display 
// All parks option in park dropdown becuase we just have one park in these two regions

  if(val!=14 && val!=12)  
  {
    oOption.text = "All Parks";
    oOption.value = "0";
    try {elSel.add(oOption, null);}
    catch(ex) { elSel.add(oOption);}
  }
  
  for(i=0; i<parks.length; i+=3){
    if(parks[i] == val){
      oOption = document.createElement("option");
	  oOption.text = parks[i+2];
	  oOption.value = parks[i+1];

	  try {elSel.add(oOption, null);}
	  catch(ex) { elSel.add(oOption);}
	}
  }
  elSel.disabled=false;
  } 

    
  switch(val)
    {
    
      case 1:
        datefrom = ScotlandStartDate;
        dateto=ScotlandEndDate;
        break
      case 2:
        datefrom = WalesStartDate;
        dateto=WalesEndDate;
        break      
      case 4:
        datefrom = CornwallStartDate;
        dateto=CornwallEndDate;
        break       
      case 12:
        datefrom = NorfolkStartDate;
        dateto=NorfolkEndDate;
        break       
      case 6:
        datefrom = DorsetStartDate;
        dateto=DorsetEndDate;
        break       
      case 5:
        datefrom = DevonStartDate;
        dateto=DevonEndDate;
        break      
      case 14:
        datefrom = HampshireStartDate;
        dateto=HampshireEndDate;
        break               
      default:
        datefrom = DatesStartDate;
        dateto=DatesEndDate;
        break       
     }
     
       var oldMonth="" 
       elSel = document.getElementById("month");


        
       for(i=0; i<dates.length; i+=3)
       {
            for (j=0; j< datefrom.length; j++)
            {
                if(dates[i+2] >= datefrom[j] && dates[i+2] <= dateto[j] && dates[i+2] >= dayDiff && new Date(dates[i]) >= new Date())
                {
                  if(oldMonth != Right(dates[i] ,8))
                  {
                    oldMonth = Right(dates[i], 8);
                    oOption = document.createElement("option");
                    oOption.text = convertMyDate(dates[i]);
	                oOption.value = oldMonth;
	                try {elSel.add(oOption, null);}
	                catch(ex) { elSel.add(oOption);}
	    
	             }
                }
            }
        }

    dateObJ = document.getElementById("date");        
        
    for(i=dateObJ.options.length; i>=0; i--){
        dateObJ.remove(i);
    }
  
    
    oOption = document.createElement("option");
    oOption.text = "Please select month first";
    oOption.value = "null";
    try {dateObJ.add(oOption, null);}
    catch(ex) { dateObJ.add(oOption);} 
        dateObJ.disabled=true;
    
    document.getElementById("month").selectedIndex=1;        
    datePick(dayDiff);
    
  }

/**/








function parkPanelPrepopulateData(parkId,dayDiff){
  var userSelectedDate
  userSelectedDate=document.getElementById("date").value;

  var i, val, oOption, elSel;

  val = parkId;

  switch(val)
    {
    
      case 1:
        datefrom=RudaFromDate
        dateto=RudaToDate
        break
      case 2:
        datefrom=WhiteFromDate
        dateto=WhiteToDate
        break      
      case 3:
        datefrom=SeaFromDate
        dateto=SeaToDate
        break       
      case 4:
        datefrom=NairnFromDate
        dateto=NairnToDate
        break       
      case 5:
        datefrom=WestFromDate
        dateto=WestToDate
        break
      case 6:
        datefrom=TummelFromDate
        dateto=TummelToDate
        break
      case 7:
        datefrom=SundrumFromDate
        dateto=SundrumToDate
        break      
      case 8:
        datefrom=TreccoFromDate
        dateto=TreccoToDate
        break       
      case 9:
        datefrom=StFromDate
        dateto=StToDate
        break       
      case 10:
        datefrom=HolywellFromDate
        dateto=HolywellToDate
        break
      case 11:
        datefrom=CrantockFromDate
        dateto=CrantockToDate
        break
      case 12:
        datefrom=NewquayFromDate
        dateto=NewquayToDate
        break      
      case 13:
        datefrom=ChallaboroughFromDate
        dateto=ChallaboroughToDate
        break       
      case 14:
        datefrom=GranniesFromDate
        dateto=GranniesToDate
        break       
      case 15:
        datefrom=SouthernessFromDate
        dateto=SouthernessToDate
        break
      case 16:
        datefrom=TorquayFromDate
        dateto=TorquayToDate
        break
      case 17:
        datefrom=WarmwellFromDate
        dateto=WarmwellToDate
        break      
      case 18:
        datefrom=CherryFromDate
        dateto=CherryToDate
        break       
      case 19:
        datefrom=WemyssFromDate
        dateto=WemyssToDate
        break       
      case 20:
        datefrom=PendineFromDate
        dateto=PendineToDate
        break
      case 936:
        datefrom=MullionFromDate
        dateto=MullionToDate
        break
      case 937:
        datefrom=LooeFromDate
        dateto=LooeToDate
        break
      case 938:
        datefrom=SandfordFromDate
        dateto=SandfordToDate
        break
      case 939:
        datefrom=HalylingFromDate
        dateto=HalylingToDate
        break
      default:
        datefrom=DatesStartDate
        dateto=DatesEndDate
       break        
     }
     
       var oldMonth="" 
       elSel = document.getElementById("month");


        
       for(i=0; i<dates.length; i+=3)
       {
            for (j=0; j< datefrom.length; j++)
            {
                if(dates[i+2] >= datefrom[j] && dates[i+2] <= dateto[j] && dates[i+2] >= dayDiff && new Date(dates[i]) >= new Date())
                {
                  if(oldMonth != Right(dates[i] ,8))
                  {
                    oldMonth = Right(dates[i], 8);
                    oOption = document.createElement("option");
                    oOption.text = convertMyDate(dates[i]);
	                oOption.value = oldMonth;
	                try {elSel.add(oOption, null);}
	                catch(ex) { elSel.add(oOption);}
	    
	             }
                }
            }
        }

    dateObJ = document.getElementById("date");        
        
    for(i=dateObJ.options.length; i>=0; i--){
        dateObJ.remove(i);
    }
  
    
    oOption = document.createElement("option");
    oOption.text = "Please select month first";
    oOption.value = "null";
    try {dateObJ.add(oOption, null);}
    catch(ex) { dateObJ.add(oOption);} 
        dateObJ.disabled=true;
    
    document.getElementById("month").selectedIndex=1;        
    datePick(dayDiff);    
    
  }
  
  





















function datePick(dayDiff){

 var i, mon, objMonth, nights, objNights, elSel, oOption, oOption, show=0;
 var strRegionorPark,userSelectedDate;
 elSel = document.getElementById("date");
 userSelectedDate=elSel.value;
 
 var ParkName = document.getElementById("park");
 var selectedParkVal;
 
 if(ParkName.options==undefined)
   selectedParkVal = ParkName.value
 else  
   selectedParkVal = ParkName.options[ParkName.selectedIndex].value
   


if (selectedParkVal == '0')
  {strRegionorPark="By Region";}   
else if (selectedParkVal=='null')
  {strRegionorPark="By Region";}   
else
  {strRegionorPark="By Park";}     




  Available_Start_Date(dayDiff,strRegionorPark) // my function will get the available start dates according to selected park
 
 if(elSel.options.length == 0){

   oOption = document.createElement("option");
   oOption.text = "Please select month first";
   oOption.value = "null";
   try {elSel.add(oOption, null);}
   catch(ex) { elSel.add(oOption);} 
   elSel.disabled=true;
 } else {
   elSel.disabled=false;
 }
  //********* this code is used when the user change the region or park option if the date is availabe then automaticaly selected
   var iters = elSel.length;
   for (i=0; i<iters; i++)
   { 
     if (elSel.options[i].value==userSelectedDate)
       elSel.options[i].selected=true;  
   }


}


function dateDifference(strDate1,strDate2){
     datDate1= Date.parse(strDate1);
     datDate2= Date.parse(strDate2);
     return (datDate2-datDate1)/(24*60*60*1000)
}



function populate(){


  var i, oOption, elSel, oldMonth="";
   
      elSel = document.getElementById("month");
      for(i=0; i<dates.length; i+=3){
      if(dates[i+2] >= dayDiff){
	    if(oldMonth != Right(dates[i] ,8)){
	     
	     oldMonth = Right(dates[i] ,8);
         oOption = document.createElement("option");
         oOption.text = convertMyDate(dates[i]);
	     oOption.value = oldMonth;
	     try {elSel.add(oOption, null);}
	     catch(ex) { elSel.add(oOption);}
        }
	  }
    }

  datePick(dayDiff);
  
}




  function convertMyDate(passedDate)
  {

    var DateFirstPart,DateLastPart
    DateFirstPart = passedDate.substring(0,passedDate.length-2)	
    DateLastPart = passedDate.substring(passedDate.length,passedDate.length-2)
    passedDate = DateFirstPart+DateLastPart
    
   
    
    returnedDate = new Date(passedDate)
    
    
    
    return GetMonth(returnedDate.getMonth()) + ' ' + returnedDate.getFullYear();
  }

  function GetMonth(intMonth){
    var MonthArray = new Array("January", "February", "March",
                               "April", "May", "June",
                               "July", "August", "September",
                               "October", "November", "December") 
    return MonthArray[intMonth] 	  	 
    }





//********************************* Month_Of_Arrival ****************************
// this function will get the all aviable month according to the selected park by user

function Month_Of_Arrival(dayDiff,byRegionorPark)
{
   var oldMonth="";
   var ParkName,userSelectedMonth;
   
   objRegion = document.getElementById("region")
   elSel = document.getElementById("month");
   ParkName = document.getElementById("park");
   userSelectedMonth=elSel.value;
   
  for(i=elSel.options.length; i>=0; i--){
   elSel.remove(i);
  }
  
  
  var datefrom,dateto

      
  if(byRegionorPark=='By Region')
  {

    switch(objRegion.options[objRegion.selectedIndex].text)
    {
      case 'Scotland':
        datefrom = ScotlandStartDate;
        dateto=ScotlandEndDate;
        break
      case 'Wales':
        datefrom = WalesStartDate;
        dateto=WalesEndDate;
        break      
      case 'Cornwall':
        datefrom = CornwallStartDate;
        dateto=CornwallEndDate;
        break       
      case 'Norfolk':
        datefrom = NorfolkStartDate;
        dateto=NorfolkEndDate;
        break       
      case 'Dorset':
        datefrom = DorsetStartDate;
        dateto=DorsetEndDate;
        break       
      case 'Devon':
        datefrom = DevonStartDate;
        dateto=DevonEndDate;
        break      
      case 'Hampshire':
        datefrom = HampshireStartDate;
        dateto=HampshireEndDate;
        break               
      default:
        datefrom = DatesStartDate;
        dateto=DatesEndDate;
        break       
     }
   }
   
   else
   {
   switch(ParkName.options[ParkName.selectedIndex].value)
    {
      case '1':
        datefrom=RudaFromDate
        dateto=RudaToDate
        break
      case '2':
        datefrom=WhiteFromDate
        dateto=WhiteToDate
        break      
      case '3':
        datefrom=SeaFromDate
        dateto=SeaToDate
        break       
      case '4':
        datefrom=NairnFromDate
        dateto=NairnToDate
        break       
      case '5':
        datefrom=WestFromDate
        dateto=WestToDate
        break
      case '6':
        datefrom=TummelFromDate
        dateto=TummelToDate
        break
      case '7':
        datefrom=SundrumFromDate
        dateto=SundrumToDate
        break      
      case '8':
        datefrom=TreccoFromDate
        dateto=TreccoToDate
        break       
      case '9':
        datefrom=StFromDate
        dateto=StToDate
        break       
      case '10':
        datefrom=HolywellFromDate
        dateto=HolywellToDate
        break
      case '11':
        datefrom=CrantockFromDate
        dateto=CrantockToDate
        break
      case '12':
        datefrom=NewquayFromDate
        dateto=NewquayToDate
        break      
      case '13':
        datefrom=ChallaboroughFromDate
        dateto=ChallaboroughToDate
        break       
      case '14':
        datefrom=GranniesFromDate
        dateto=GranniesToDate
        break       
      case '15':
        datefrom=SouthernessFromDate
        dateto=SouthernessToDate
        break
      case '16':
        datefrom=TorquayFromDate
        dateto=TorquayToDate
        break
      case '17':
        datefrom=WarmwellFromDate
        dateto=WarmwellToDate
        break      
      case '18':
        datefrom=CherryFromDate
        dateto=CherryToDate
        break       
      case '19':
        datefrom=WemyssFromDate
        dateto=WemyssToDate
        break       
      case '20':
        datefrom=PendineFromDate
        dateto=PendineToDate
        break
      case '936': 
        datefrom=MullionFromDate
        dateto=MullionToDate
        break
      case '937':
        datefrom=LooeFromDate
        dateto=LooeToDate
        break
    case '938' : 
        datefrom=SandfordFromDate
        dateto=SandfordToDate
        break
      case '939':
        datefrom=HalylingFromDate
        dateto=HalylingToDate
        break
    case '22':
        datefrom = MullionFromDate
        dateto = MullionToDate
        break
    case '23':
        datefrom = SandfordFromDate
        dateto = SandfordToDate
        break
                        
      default:
        datefrom=DatesStartDate
        dateto=DatesEndDate
       break       
     }
    }

    
     for(i=0; i<dates.length; i+=3){
       for (j=0; j< datefrom.length; j++){
        if(dates[i+2] >= datefrom[j] && dates[i+2] <= dateto[j] && dates[i+2] >= dayDiff && new Date(dates[i]) >= new Date()){
        
          
          
          
          if(Right(dates[i] ,8).indexOf("Jan")==-1 || objRegion.options[objRegion.selectedIndex].text == "Devon") // removing Jan month from month drop down
          {
              if(oldMonth != Right(dates[i] ,8))
              {
                oldMonth = Right(dates[i], 8);
                oOption = document.createElement("option");
                oOption.text = convertMyDate(dates[i]);
	            oOption.value = oldMonth;
	            try {elSel.add(oOption, null);}
	            catch(ex) { elSel.add(oOption);}
             }
         }
         
        }
      }
   } 
//********* this code is used when the user change the region or park option if the date is availabe then automaticaly selected
   var iters = elSel.length;
   for (i=0; i<iters; i++)
   { 
     if (elSel.options[i].value==userSelectedMonth)
       elSel.options[i].selected=true;  
   }
}


//********************************* End of Month_Of_Arrival ****************************


// ************************* Available start date ***********************
// This function will will set the opetions in availabe start date

function Available_Start_Date(dayDiff,byParkOrRegion)
{
 
     var i, mon, objMonth, nights, objNights, elSel, oOption, oOption, show=0; 
    
    
		elSel1 = document.getElementById("date");
		for(i=elSel1.options.length; i>=0; i--){
			elSel1.remove(i);
		}    
    
     objMonth = document.getElementById("month");

     mon = objMonth.options[objMonth.selectedIndex].value;
     objNights = document.getElementById("nights");
     nights = objNights.options[objNights.selectedIndex].value;
     elSel1 = document.getElementById("date");

     var ParkName = document.getElementById("park");
     var regionName = document.getElementById("region");
	 var datevar;

  var datefrom,dateto,strRegionName,strSelectedPark

 
  if(regionName.options==undefined)
    strRegionName = regionName.value;
  else
    strRegionName = regionName.options[regionName.selectedIndex].text;

  /*This code will check if park dropdown is avaialable or not beucase same code using in parkpanel*/
  if(ParkName.options==undefined)  
    strSelectedPark = ParkName.value;
  else
    strSelectedPark = ParkName.options[ParkName.selectedIndex].value;
    

      
  if(byParkOrRegion=='By Region')
  {
    switch(strRegionName)
    {

      case 'Scotland' || '1':
        datefrom = ScotlandStartDate;
        dateto=ScotlandEndDate;
        break
      case 'Wales' || '2':
        datefrom = WalesStartDate;
        dateto=WalesEndDate;
        break      
      case 'Cornwall' || '4':
        datefrom = CornwallStartDate;
        dateto=CornwallEndDate;
        break       
      case 'Norfolk' || '12':
        datefrom = NorfolkStartDate;
        dateto=NorfolkEndDate;
        break       
      case 'Dorset' || '6':
        datefrom = DorsetStartDate;
        dateto=DorsetEndDate;
        break       
      case 'Devon' || '5':
        datefrom = DevonStartDate;
        dateto=DevonEndDate;
        break      
      case 'Hampshire' || '14':
        datefrom = HampshireStartDate;
        dateto=HampshireEndDate;
        break          
      default:
        datefrom = DatesStartDate;
        dateto=DatesEndDate;
        break       
     }
   }
   else
   {
   switch(strSelectedPark)
    {
      case '1':
        datefrom=RudaFromDate
        dateto=RudaToDate
        break
      case '2':
        datefrom=WhiteFromDate
        dateto=WhiteToDate
        break      
      case '3':
        datefrom=SeaFromDate
        dateto=SeaToDate
        break       
      case '4':
        datefrom=NairnFromDate
        dateto=NairnToDate
        break       
      case '5':
        datefrom=WestFromDate
        dateto=WestToDate
        break
      case '6':
        datefrom=TummelFromDate
        dateto=TummelToDate
        break
      case '7':
        datefrom=SundrumFromDate
        dateto=SundrumToDate
        break      
      case '8':
        datefrom=TreccoFromDate
        dateto=TreccoToDate
        break       
      case '9':
        datefrom=StFromDate
        dateto=StToDate
        break       
      case '10':
        datefrom=HolywellFromDate
        dateto=HolywellToDate
        break
      case '11':
        datefrom=CrantockFromDate
        dateto=CrantockToDate
        break
      case '12':
        datefrom=NewquayFromDate
        dateto=NewquayToDate
        break      
      case '13':
        datefrom=ChallaboroughFromDate
        dateto=ChallaboroughToDate
        break       
      case '14':
        datefrom=GranniesFromDate
        dateto=GranniesToDate
        break       
      case '15':
        datefrom=SouthernessFromDate
        dateto=SouthernessToDate
        break
      case '16':
        datefrom=TorquayFromDate
        dateto=TorquayToDate
        break
      case '17':
        datefrom=WarmwellFromDate
        dateto=WarmwellToDate
        break      
      case '18':
        datefrom=CherryFromDate
        dateto=CherryToDate
        break       
      case '19':
        datefrom=WemyssFromDate
        dateto=WemyssToDate
        break       
      case '20':
        datefrom=PendineFromDate
        dateto=PendineToDate
        break
      case '936':
        datefrom=MullionFromDate
        dateto=MullionToDate
        break
      case '937':
        datefrom=LooeFromDate
        dateto=LooeToDate
        break
      case '938':
        datefrom=SandfordFromDate
        dateto=SandfordToDate
        break
      case '939':
        datefrom=HalylingFromDate
        dateto=HalylingToDate
        break
      default:
        datefrom=DatesStartDate
        dateto=DatesEndDate
       break       
     }
    }

//alert(datefrom);
//alert(dateto);


 for(i=0; i<dates.length; i+=3){
   for (j=0; j< datefrom.length; j++){


     if(mon == Right(dates[i] ,8) && dates[i+2] > dayDiff  && dates[i+2] >= datefrom[j] && dates[i+2] <= dateto[j]-nights){
       if(dates[i+1]=="3" && (nights == "4" || nights == "7" || nights == "14")){show = 1;}
       if(dates[i+1]=="7" && (nights == "3" || nights == "7" || nights == "14")){show = 1;}
       if(dates[i+1]=="1" && (nights == "7" || nights == "14")){show = 1;}
   }

   
   if(show==1){
  	 oOption = document.createElement("option");
	 switch(dates[i+1]){
	 	case("1"): oOption.text = "Sat, "+dates[i];
				   break
		case("2"): oOption.text = "Sun, "+dates[i];
				   break
		case("3"): oOption.text = "Mon, "+dates[i];
				   break
		case("4"): oOption.text = "Tue, "+dates[i];
				   break
		case("5"): oOption.text = "Wed, "+dates[i];
				   break
		case("6"): oOption.text = "Thu, "+dates[i];
				   break
		case("7"): oOption.text = "Fri, "+dates[i];
				   break
	 }
	// this condition is checking if available date is equal to or greater than current date then insert in to srop down list
	if(new Date(dates[i]) >= new Date())
	{
	 oOption.value = dates[i];
	 try {elSel1.add(oOption, null);}
	 catch(ex) { elSel1.add(oOption);}
	}	
     show=0;


   }
   }
 }

}

// ************************* End of Available start date ***********************



function Refine_Data(dayDiff)
{


  var userSelectedDate
  userSelectedDate=document.getElementById("date").value;
  
  if(document.getElementById("park").value != "0")
  {
	  Month_Of_Arrival(dayDiff,'By Park');
	  Available_Start_Date(dayDiff,'By Park');
  }
  else
  {
  	  Month_Of_Arrival(dayDiff,'By Region');
	  Available_Start_Date(dayDiff,'By Region');
  }
  
  elSel = document.getElementById('date');

  /*This code is used to remove some of park closing on 02 Nov and showing in 
    Month dropdown but user can not select any dates from nov 2009 month
    we need to remove this month from specific parks
  */  
  
  var parkName = document.getElementById("park")
  var selectedPark = parkName.options[parkName.selectedIndex].value
  
  
  var month = document.getElementById('month');
  for(i=0;i<month.options.length; i++){
    if( ( (selectedPark=="12" || selectedPark=="10" || selectedPark=="11" || selectedPark=="3" || selectedPark=="936" || selectedPark=="937" ) && month[i].value=="Nov 2009") || (selectedPark=="1" && month[i].value=="Jan 2010") )
        month.remove(i);
  }
  
  /*End of new code 10/10/2009 by nas*/
  
   if(elSel.options.length == 0){

   oOption = document.createElement("option");
   oOption.text = "Please select month first";
   oOption.value = "null";
   try {elSel.add(oOption, null);}
   catch(ex) { elSel.add(oOption);} 
   elSel.disabled=true;
 } else {
   elSel.disabled=false;
 }
  
   var iters = document.getElementById("date").length;
   for (i=0; i<iters; i++)
   { 
     if (elSel.options[i].value==userSelectedDate)
       elSel.options[i].selected=true;  
   }
   
    
}




//*********************************** Code to set the date *************************

 
 
 
 //*********************************** End of Code to set the date *************************
 
 
//******************************** This function pre populates fields in Quick Search *******************       
function selectData(dayDiff)
{




  var datedrop
  datedrop=document.getElementById("date")
  regionDrop = document.getElementById("region")
  parkDrop = document.getElementById("park")
  nightsDrop=document.getElementById("nights")
  monthDrop=document.getElementById("month")
  


//Region

  for(j=0; j<regionDrop.length; j++){

    if(regionDrop.options[j].text==replacePls(getQueryVariable('region')))
     { regionDrop.selectedIndex=j; }
  }



  regionPick(document.getElementById("region"),dayDiff) // this is used to populate the park drop down list



//Park

  for(j=0; j<parkDrop.length; j++){
    if(parkDrop.options[j].text==replacePls(getQueryVariable('park')))
     { parkDrop.selectedIndex=j; }
  }

// nights

  for(j=0; j<nightsDrop.length; j++){
    if(nightsDrop.options[j].value==replacePls(getQueryVariable('nights')))
     { nightsDrop.selectedIndex=j; }
  }

 
    
    
//month

  for(j=0; j<monthDrop.length; j++){
    if(monthDrop.options[j].value==replacePls(getQueryVariable('month')))
     { monthDrop.selectedIndex=j; }
  }
  


//  Available_Start_Date(dayDiff,'By Region')
  Available_Start_Date(dayDiff,'By Region')


//Date

  for(j=0; j<datedrop.length; j++){

    if(datedrop.options[j].value==replacePls(getQueryVariable('date')))
     { datedrop.selectedIndex=j; }
  }

  if(datedrop.options.length !=0 && datedrop.disabled) // check if date dropdown has option and it is disabled then turn it into enabled
    datedrop.disabled=false;

}

function replacePls(str)
{
    var str = new String(str)
    str = str.replace('\+', ' ')
    str = str.replace(/%20/g, ' ')
    return str;

}




function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
 
}
     
//********************************************************************************





/*********************************Toruing functions****************************************/
// This is first function used to populate 
// dates and all drop downs

function touringPopulate() {
    var i, oOption, elSel, oldMonth = "";
    elSel = document.getElementById("month");

    for (i = 0; i < dates.length; i += 3) {
        if (dates[i + 2] >= dayDiff) {
            if (oldMonth != Right(dates[i], 8)) {
                oldMonth = Right(dates[i], 8);
                oOption = document.createElement("option");
                oOption.text = convertTouringDate(dates[i]);
                oOption.value = oldMonth;
                try { elSel.add(oOption, null); }
                catch (ex) { elSel.add(oOption); }
            }
        }
    }

    touringDatePick(dayDiff);
}


//  Modiffied on : 28/01/2010
//  Purpose : this procedure is used when user change region/park drop down
//            this functionas gets required month and dates avaiable for selected region/park

function touringRegPick(obj, dayDiff) {

    var userSelectedDate
    userSelectedDate = document.getElementById("date").value;

    var i, val, oOption, elSel;
    val = obj.options[obj.selectedIndex].value;
    if(val=='') return;
    
    var selectedRegArr = val.split('|');
    val = selectedRegArr[0]
    
    elSel = document.getElementById("park")    
    for (i = elSel.options.length; i >= 0; i--) {
        elSel.remove(i);
    }
    // user selected park
    if(selectedRegArr[1] != "0"){
        oOption = document.createElement("option");
        oOption.text = "selected park";
        oOption.value = selectedRegArr[1];
        try { elSel.add(oOption, null); }
        catch (ex) { elSel.add(oOption); }
    } 
    // user just selected region
    else{
        oOption = document.createElement("option");
        oOption.text = "selected park";
        oOption.value = "0";
        try { elSel.add(oOption, null); }
        catch (ex) { elSel.add(oOption); }
    }               

    touringTypes();
    if(selectedRegArr[1] != "0")
        touringMonthOfArrival(dayDiff, 'By Park')
    else
        touringMonthOfArrival(dayDiff, 'By Region')
        
    touringDatePick(dayDiff);
}


function touringTypes() {

    var selectedReg = $('#region').val();
    if(selectedReg=='') return;
    
    var selectedRegValArr = selectedReg.split('|');
    
    
    // code to get all the tourer types from array
    var typeSel = document.getElementById('ttype');
    var selVal = $('#ttype').val();


    // removing all the options first from touring type
    for (i = typeSel.options.length; i >= 0; i--) {
        typeSel.remove(i);
    }
    // adding first option  choose one
    oOption = document.createElement("option");
    oOption.text = "Select:";
    oOption.value = "";
    try { typeSel.add(oOption, null); }
    catch (ex) { typeSel.add(oOption); }

    

    for (i = 0; i < touringType.length; i++) {
        arrTourTypes = touringType[i].toString().split(',');
        arrReg = arrTourTypes[3].toString().split('|'); // this line will get array of region from tourer array   
        arrPark = arrTourTypes[2].toString().split('|'); // this line will get array of park from tourer array   

        // this code will check if park selected then get tourer types according to park other gets according to region
        if (selectedRegValArr[1] == "0") {
            for (j = 0; j < arrReg.length; j++) {
                if (arrReg[j] == selectedRegValArr[0]) {
                    oOption = document.createElement("option");
                    oOption.text = arrTourTypes[1];
                    oOption.value = arrTourTypes[0];
                    try { typeSel.add(oOption, null); }
                    catch (ex) { typeSel.add(oOption); }
                    typeSel.disabled = false;
                }
            }
        }
        else if (selectedRegValArr[1] != "0") {

            for (j = 0; j < arrPark.length; j++) {
                if (arrPark[j] == selectedRegValArr[1]) {
                    oOption = document.createElement("option");
                    oOption.text = arrTourTypes[1];
                    oOption.value = arrTourTypes[0];
                    try { typeSel.add(oOption, null); }
                    catch (ex) { typeSel.add(oOption); }
                    typeSel.disabled = false;
                }
            }
        } // end of if else condition
    }  // end of main for loop
    // setting previous selected alue of tourer if avaiable
    $('#ttype').val(selVal);

} // end of function


function touringDatePick(dayDiff) {

    var i, mon, objMonth, nights, objNights, elSel, oOption, oOption, show = 0;
    var strRegionorPark, userSelectedDate;
    elSel = document.getElementById("date");
    userSelectedDate = elSel.value;

    var ParkName = document.getElementById("park");
    var selectedParkVal;

    if (ParkName.options == undefined)
        selectedParkVal = ParkName.value
    else
        selectedParkVal = ParkName.options[ParkName.selectedIndex].value


    if (selectedParkVal == '0')
    { strRegionorPark = "By Region"; }
    else if (selectedParkVal == 'null')
    { strRegionorPark = "By Region"; }
    else
    { strRegionorPark = "By Park"; }


    touringDates(dayDiff, strRegionorPark) // my function will get the available start dates according to selected park

    if (elSel.options.length == 0) {
        oOption = document.createElement("option");
        oOption.text = "Select:";
        oOption.value = "null";
        try { elSel.add(oOption, null); }
        catch (ex) { elSel.add(oOption); }
        elSel.disabled = true;
    }
    else {
        elSel.disabled = false;
    }
    //********* this code is used when the user change the region or park option if the date is availabe then automaticaly selected
    var iters = elSel.length;
    for (i = 0; i < iters; i++) {
        if (elSel.options[i].value == userSelectedDate)
            elSel.options[i].selected = true;
    }
}


function touringDates(dayDiff, byParkOrRegion) {



    var i, mon, objMonth, nights, objNights, elSel, oOption, oOption, show = 0;
    elSel1 = document.getElementById("date");

    for (i = elSel1.options.length; i >= 0; i--) {
        elSel1.remove(i);
    }

    objMonth = document.getElementById("month");

    mon = objMonth.options[objMonth.selectedIndex].value;
    objNights = document.getElementById("nights");
    nights = objNights.options[objNights.selectedIndex].value;
    elSel1 = document.getElementById("date");

    var ParkName = document.getElementById("park");
    var regionName = document.getElementById("region");
    var datevar;

    var datefrom, dateto, strRegionName, strSelectedPark


    if (regionName.options == undefined)
        strRegionName = regionName.value;
    else
        strRegionName = regionName.options[regionName.selectedIndex].text;




    /*This code will check if park dropdown is avaialable or not beucase same code using in parkpanel*/
    if (ParkName.options == undefined)
        strSelectedPark = ParkName.value;
    else
        strSelectedPark = ParkName.options[ParkName.selectedIndex].value;






    if (byParkOrRegion == 'By Region') {
        switch (strRegionName) {
            case 'Scotland' || '1':
                datefrom = ScotlandStartDate;
                dateto = ScotlandEndDate;
                break
            case 'Wales' || '2':
                datefrom = WalesStartDate;
                dateto = WalesEndDate;
                break
            case 'Cornwall' || '4':
                datefrom = CornwallStartDate;
                dateto = CornwallEndDate;
                break
            case 'Norfolk' || '12':
                datefrom = NorfolkStartDate;
                dateto = NorfolkEndDate;
                break
            case 'Dorset' || '6':
                datefrom = DorsetStartDate;
                dateto = DorsetEndDate;
                break
            case 'Devon' || '5':
                datefrom = tourRudaFrom;
                dateto = tourRudaTo;
                break
            case 'Hampshire' || '14':
                datefrom = HampshireStartDate;
                dateto = HampshireEndDate;
                break
            default:
                datefrom = DatesStartDate;
                dateto = DatesEndDate;
                break
        }
    }
    else {
        switch (strSelectedPark) {
            case '1':
                datefrom = tourRudaFrom
                dateto = tourRudaTo
                break
            case '2':
                datefrom = WhiteFromDate
                dateto = WhiteToDate
                break
            case '3':
                datefrom = SeaFromDate
                dateto = SeaToDate
                break
            case '4':
                datefrom = NairnFromDate
                dateto = NairnToDate
                break
            case '5':
                datefrom = tourWestBayFrom
                dateto = tourWestBayTo
                break
            case '6':
                datefrom = TummelFromDate
                dateto = TummelToDate
                break
            case '7':
                datefrom = SundrumFromDate
                dateto = SundrumToDate
                break
            case '8':
                datefrom = TreccoFromDate
                dateto = TreccoToDate
                break
            case '9':
                datefrom = StFromDate
                dateto = StToDate
                break
            case '10':
                datefrom = HolywellFromDate
                dateto = HolywellToDate
                break
            case '11':
                datefrom = CrantockFromDate
                dateto = CrantockToDate
                break
            case '12':
                datefrom = NewquayFromDate
                dateto = NewquayToDate
                break
            case '13':
                datefrom = ChallaboroughFromDate
                dateto = ChallaboroughToDate
                break
            case '14':
                datefrom = GranniesFromDate
                dateto = GranniesToDate
                break
            case '15':
                datefrom = SouthernessFromDate
                dateto = SouthernessToDate
                break
            case '16':
                datefrom = TorquayFromDate
                dateto = TorquayToDate
                break
            case '17':
                datefrom = WarmwellFromDate
                dateto = WarmwellToDate
                break
            case '18':
                datefrom = CherryFromDate
                dateto = CherryToDate
                break
            case '19':
                datefrom = WemyssFromDate
                dateto = WemyssToDate
                break
            case '20':
                datefrom = PendineFromDate
                dateto = PendineToDate
                break
            case '22':
                datefrom = tourMullionFrom
                dateto = tourMullionTo
                break
            case '937':
                datefrom = LooeFromDate
                dateto = LooeToDate
                break
            case '23':
                datefrom = tourSandfordFrom
                dateto = tourSandfordTo
                break
            case '939':
                datefrom = HalylingFromDate
                dateto = HalylingToDate
                break
            default:
                datefrom = DatesStartDate
                dateto = DatesEndDate
                break
        }
    }


    for (i = 0; i < dates.length; i += 3) {
        for (j = 0; j < datefrom.length; j++) {
            if (mon == Right(dates[i], 8) && dates[i + 2] > dayDiff && dates[i + 2] >= datefrom[j] && dates[i + 2] <= dateto[j] - nights) {
                show = 1;
                /* if(dates[i+1]=="3" && (nights == "4" || nights == "7" || nights == "14")){show = 1;}
                if(dates[i+1]=="7" && (nights == "3" || nights == "7" || nights == "14")){show = 1;}
                if(dates[i+1]=="1" && (nights == "7" || nights == "14")){show = 1;}*/
            }

            if (show == 1) {
                oOption = document.createElement("option");
                switch (dates[i + 1]) {
                    case ("1"): oOption.text = "Sat, " + Left(dates[i],2);
                        break
                    case ("2"): oOption.text = "Sun, " + Left(dates[i],2);
                        break
                    case ("3"): oOption.text = "Mon, " + Left(dates[i],2);
                        break
                    case ("4"): oOption.text = "Tue, " + Left(dates[i],2);
                        break
                    case ("5"): oOption.text = "Wed, " + Left(dates[i],2);
                        break
                    case ("6"): oOption.text = "Thu, " + Left(dates[i],2);
                        break
                    case ("7"): oOption.text = "Fri, " + Left(dates[i],2);
                        break
                }
                // this condition is checking if available date is equal to or greater than current date then insert in to srop down list
                if (new Date(dates[i]) >= new Date()) {
                    oOption.value = dates[i];
                    try { elSel1.add(oOption, null); }
                    catch (ex) { elSel1.add(oOption); }
                }
                show = 0;
            }
        }
    }
}


function refineTouringData(dayDiff) {

    var userSelectedDate
    userSelectedDate = document.getElementById("date").value;


    if ($('#park').val() != "0") {
        touringMonthOfArrival(dayDiff, 'By Park');
        touringDates(dayDiff, 'By Park');
    }
    else {
        touringMonthOfArrival(dayDiff, 'By Region');
        touringDates(dayDiff, 'By Region');
    }

    elSel = document.getElementById('date');

    /*This code is used to remove some of park closing on 02 Nov and showing in 
    Month dropdown but user can not select any dates from nov 2009 month
    we need to remove this month from specific parks
    */

    var parkName = document.getElementById("park")
    var selectedPark = parkName.options[parkName.selectedIndex].value

    var month = document.getElementById('month');
    for (i = 0; i < month.options.length; i++) {
        if (((selectedPark == "12" || selectedPark == "10" || selectedPark == "11" || selectedPark == "3" || selectedPark == "22" || selectedPark == "23") && month[i].value == "Nov 2009") || (selectedPark == "1" && month[i].value == "Jan 2010"))
            month.remove(i);
    }

    /*End of new code 10/10/2009 by nas*/



    if (elSel.options.length == 0) {
        oOption = document.createElement("option");
        oOption.text = "Please select month first";
        oOption.value = "null";
        try { elSel.add(oOption, null); }
        catch (ex) { elSel.add(oOption); }
        elSel.disabled = true;
    }
    else {
        elSel.disabled = false;
    }

    var iters = document.getElementById("date").length;
    for (i = 0; i < iters; i++) {
        if (elSel.options[i].value == userSelectedDate)
            elSel.options[i].selected = true;
    }

    touringTypes();
}


function touringMonthOfArrival(dayDiff, byRegionorPark) {
    var oldMonth = "";
    var ParkName, userSelectedMonth;

    objRegion = document.getElementById("region")
    elSel = document.getElementById("month");
    ParkName = document.getElementById("park");
    userSelectedMonth = elSel.value;

    for (i = elSel.options.length; i >= 0; i--) {
        elSel.remove(i);
    }


    var datefrom, dateto


    if (byRegionorPark == 'By Region') {

        switch (objRegion.options[objRegion.selectedIndex].text) {
            case 'Scotland':
                datefrom = ScotlandStartDate;
                dateto = ScotlandEndDate;
                break
            case 'Wales':
                datefrom = WalesStartDate;
                dateto = WalesEndDate;
                break
            case 'Cornwall':
                datefrom = CornwallStartDate;
                dateto = CornwallEndDate;
                break
            case 'Norfolk':
                datefrom = NorfolkStartDate;
                dateto = NorfolkEndDate;
                break
            case 'Dorset':
                datefrom = DorsetStartDate;
                dateto = DorsetEndDate;
                break
            case 'Devon':
                datefrom = tourRudaFrom;
                dateto = tourRudaTo;
                break
            case 'Hampshire':
                datefrom = HampshireStartDate;
                dateto = HampshireEndDate;
                break
            default:
                datefrom = DatesStartDate;
                dateto = DatesEndDate;
                break
        }
    }

    else {
        switch (ParkName.options[ParkName.selectedIndex].value) {
            case '1':
                datefrom = tourRudaFrom;
                dateto = tourRudaTo;
                break
            case '2':
                datefrom = WhiteFromDate
                dateto = WhiteToDate
                break
            case '3':
                datefrom = SeaFromDate
                dateto = SeaToDate
                break
            case '4':
                datefrom = NairnFromDate
                dateto = NairnToDate
                break
            case '5':
                datefrom = tourWestBayFrom
                dateto = tourWestBayTo
                break
            case '6':
                datefrom = TummelFromDate
                dateto = TummelToDate
                break
            case '7':
                datefrom = SundrumFromDate
                dateto = SundrumToDate
                break
            case '8':
                datefrom = TreccoFromDate
                dateto = TreccoToDate
                break
            case '9':
                datefrom = StFromDate
                dateto = StToDate
                break
            case '10':
                datefrom = HolywellFromDate
                dateto = HolywellToDate
                break
            case '11':
                datefrom = CrantockFromDate
                dateto = CrantockToDate
                break
            case '12':
                datefrom = NewquayFromDate
                dateto = NewquayToDate
                break
            case '13':
                datefrom = ChallaboroughFromDate
                dateto = ChallaboroughToDate
                break
            case '14':
                datefrom = GranniesFromDate
                dateto = GranniesToDate
                break
            case '15':
                datefrom = SouthernessFromDate
                dateto = SouthernessToDate
                break
            case '16':
                datefrom = TorquayFromDate
                dateto = TorquayToDate
                break
            case '17':
                datefrom = WarmwellFromDate
                dateto = WarmwellToDate
                break
            case '18':
                datefrom = CherryFromDate
                dateto = CherryToDate
                break
            case '19':
                datefrom = WemyssFromDate
                dateto = WemyssToDate
                break
            case '20':
                datefrom = PendineFromDate
                dateto = PendineToDate
                break
            case '936':
                datefrom = MullionFromDate
                dateto = MullionToDate
                break
            case '937':
                datefrom = LooeFromDate
                dateto = LooeToDate
                break
            case '938':
                datefrom = tourSandfordFrom
                dateto = tourSandfordTo
                break
            case '939':
                datefrom = HalylingFromDate
                dateto = HalylingToDate
                break
            case '22':
                datefrom = tourMullionFrom
                dateto = tourMullionTo
                break
            case '23':
                datefrom = tourSandfordFrom
                dateto = tourSandfordTo
                break

            default:
                datefrom = DatesStartDate
                dateto = DatesEndDate
                break
        }
    }


    for (i = 0; i < dates.length; i += 3) {
        for (j = 0; j < datefrom.length; j++) {
            if (dates[i + 2] >= datefrom[j] && dates[i + 2] <= dateto[j] && dates[i + 2] >= dayDiff && new Date(dates[i]) >= new Date()) {




                if (Right(dates[i], 8).indexOf("Jan") == -1 || objRegion.options[objRegion.selectedIndex].text == "Devon") // removing Jan month from month drop down
                {
                    if (oldMonth != Right(dates[i], 8)) {
                        oldMonth = Right(dates[i], 8);
                        oOption = document.createElement("option");
                        oOption.text = convertTouringDate(dates[i]);
                        oOption.value = oldMonth;
                        try { elSel.add(oOption, null); }
                        catch (ex) { elSel.add(oOption); }
                    }
                }

            }
        }
    }
    //********* this code is used when the user change the region or park option if the date is availabe then automaticaly selected
    var iters = elSel.length;
    for (i = 0; i < iters; i++) {
        if (elSel.options[i].value == userSelectedMonth)
            elSel.options[i].selected = true;
    }
}


    // function will convert date text for touring to required format
    function convertTouringDate(passedDate)
    {
        var DateFirstPart,DateLastPart
        DateFirstPart = passedDate.substring(0,passedDate.length-2)	
        DateLastPart = passedDate.substring(passedDate.length,passedDate.length-2)
        passedDate = DateFirstPart+DateLastPart
        returnedDate = new Date(passedDate)
        return getTouringMonth(returnedDate.getMonth()) + ' ' + returnedDate.getFullYear();
    }

    function getTouringMonth(intMonth){
        var MonthArray = new Array("Jan", "Feb", "Mar",
                       "Apr", "May", "Jun",
                       "Jul", "Aug", "Sep",
                       "Oct", "Nov", "Dec") 
        return MonthArray[intMonth] 	  	 
    }