// JScript File

/*
    Last number on eatch park will tell which home type park belongs to
    1=Caravan
    2=Contemporary Homes
    3=Lodges
    4=Caravan and Contemporary
    5=Caravan and lodges
    6=Caravan, Contemporary, Lodges
*/
        parks = new Array(
        "1","14","Grannies Heilan Hame","4",
        "1","4","Nairn Lochloy","1",
        "1","6","Tummel Valley","5",
        "1","7","Sundrum Castle","1",
        "1","15","Southerness","4",
        "1","19","Wemyss Bay","1",
        "2","8","Trecco Bay","6",
        "2","20","Pendine Sands","4",
        "4","12","Newquay","4",
        "4","11","Crantock Beach","1",
        "4","9","St Minver","5",
        "4","2","White Acres","4",
        "4","936","Mullion","1",
        "4","937","Looe Bay","1",
        "5","13","Challaborough Bay","1",
        "6","5","West Bay","1",
        "6","17","Warmwell","3",
        "6","938","Sandford","6",
        "12","18","Cherry Tree","4",
        "14","939","Halyling Island","1"
        );
        
        


/* These 2 functions are used to make sure user can only enter int value using that in phone number text box*/
function CalcKeyCode(aChar) {
  var character = aChar.substring(0,1);
  var code = aChar.charCodeAt(0);
  return code;
}

function checkNumber(val) {
  var strPass = val.value;
  var strLength = strPass.length;
  var lchar = val.value.charAt((strLength) - 1);
  var cCode = CalcKeyCode(lchar);

  /* Check if the keyed in character is a number
     do you want alphabetic UPPERCASE only ?
     or lower case only just check their respective
     codes and replace the 48 and 57 */

  if (cCode < 48 || cCode > 57 ) {
    var myNumber = val.value.substring(0, (strLength) - 1);
    val.value = myNumber;
  }
  return false;
}



/*This function is used to validate email address it return true or false*/
 function Emailcheck(str) {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
	}
	


		

    function validateReqBrochure(strIDs,errorMsgs,btnId)
    {

                  
        
    
        /*This line of code will disable requst brochure img button if user try to submit more than once*/
        document.getElementById(btnId).href="javascript:alert('Your request has been submitted.');";

                                    
        
       
        arrayOfIds = strIDs.split("$");
        arrayOfErr = errorMsgs.split("$");
        var msg='';
        for(var i=0;i<arrayOfIds.length;i++)
        {
            if(document.getElementById(arrayOfIds[i]).value=='')
                msg=msg+'\n'+arrayOfErr[i];
        }

        /*This checks user must have to check one or more option for caravan lodge or contempo*/
        if(document.getElementById('homeType').style.display=='block')
        {
            if( ! document.getElementById('caravanChek').checked && ! document.getElementById('contemporaryCheck').checked && ! document.getElementById('lodgeCheck').checked )
                msg = msg + '\n'+'Holiday home type'
        }
        

        if(document.getElementById('iEmail').value != '' && !Emailcheck(document.getElementById('iEmail').value) )
            msg = msg +'\n'+'Valid email address';
        
        
        if(!(document.getElementById('bromail').checked) && !(document.getElementById('bromail1').checked))
            msg = msg +'\n'+'How would you like to receive your brochure';
        
        
        
        if(msg!='')
            {
            alert('Please review the following before you proceed;' + msg)
            /*This code will enable the href again if there is error in the form*/    
            document.getElementById(btnId).href="javascript:validateReqBrochure('"+strIDs+"','"+errorMsgs+"','"+btnId+"');";
            }
            
        else
        {
        
           /*This code will get the holiday home types*/ 
                       
     /*First park selected index*/
           var fisrtParkSelectedIndex="",secondParkSelectedIndex="",accomType="";
           for(i=1; i<parks.length; i+=4)
           {
            if(parks[i]==document.getElementById('sPark').value)
            {fisrtParkSelectedIndex=i+2;break;}
          }  
        
           for(i=1; i<parks.length; i+=4)
           {
            if(parks[i]==document.getElementById('sAnd').value)
            {secondParkSelectedIndex=i+2;break;}
          } 
          
          
          if(parks[fisrtParkSelectedIndex] > 3)
          {
            if(document.getElementById('caravanChek').checked)
              accomType = accomType+"1,"
            if(document.getElementById('contemporaryCheck').checked)
              accomType = accomType+"2,"              
            if(document.getElementById('lodgeCheck').checked)
              accomType = accomType+"3"              
          }
          else
          {
            accomType = accomType + parks[fisrtParkSelectedIndex] 
          }          

           
           if(document.getElementById('sAnd').value != "")
                accomType = accomType + ','+ parks[secondParkSelectedIndex]
           
                      
            
            var xmlString="";     
            for(var i=0;i<arrayOfIds.length;i++)
            {
              xmlString = xmlString+'<'+arrayOfIds[i].toLowerCase()+'>'+document.getElementById(arrayOfIds[i]).value.replace(/&/g,"&amp;").replace(/'/g,"''").replace(/</g,"''") + '</'+arrayOfIds[i].toLowerCase()+'>';
            }
            /*checking if user checked to receive offer*/
            if(document.getElementById('cNews').checked)
                xmlString = xmlString + '<offer>1</offer>'
            else
                xmlString = xmlString + '<offer>0</offer>'

            /*Getting address2 value*/
            xmlString = xmlString + '<iaddress2>'+document.getElementById('iAddress2').value.replace(/&/g,"&amp;").replace(/'/g,"''").replace(/</g,"''") +'</iaddress2>'

            /*Get value of And if user selected more than one park*/            
            xmlString = xmlString + '<sand>'+document.getElementById('sAnd').value.replace(/&/g,"&amp;").replace(/'/g,"''").replace(/</g,"''") +'</sand>'
            
            /*Accom type*/ 
            // This code is checking if accoom type is '' then set accom type to caravan
            if(accomType=="")           
	    	accomType = "1";           
            xmlString = xmlString + '<accomtype>'+accomType.replace(/&/g,"&amp;").replace(/'/g,"''").replace(/</g,"''") +'</accomtype>'
            
            /*how would you receive email*/                                    
            var howWouldYouRecBro=""
            if(document.getElementById('bromail').checked)
                howWouldYouRecBro = 'Post'
            else
                howWouldYouRecBro = 'Email'
            
            xmlString = xmlString + "<howwouldyourecbro>"+howWouldYouRecBro+"</howwouldyourecbro>";
            

            xmlString = xmlString + "<brochureform>"+escape(document.getElementById('brochureForm').innerHTML)+"</brochureform>";
            var ppciId = getRandomNumber(10000000)
            xmlString = xmlString + "<ppcid>"+ppciId+"</ppcid>";

            xmlString = "<request>"+xmlString+"</request>";
            
            
            
            // This code is used to get the data for ppc 
            var typeForPpc="",parksForPpc = "";
        
            if(document.getElementById('caravanChek').checked)
              typeForPpc = "caravan,";
            if(document.getElementById('contemporaryCheck').checked)
              typeForPpc = typeForPpc + "contemporary,";
            if(document.getElementById('lodgeCheck').checked)
              typeForPpc = typeForPpc + "lodge";                   
       
            var parkOneDropObj = document.getElementById('sPark')
            var parkTwoDropObj = document.getElementById('sAnd')
                       
            parksForPpc = parkOneDropObj.options[parkOneDropObj.selectedIndex].text
                               
            if(parkTwoDropObj.value!="")
                parksForPpc = parksForPpc + "," + parkTwoDropObj.options[parkTwoDropObj.selectedIndex].text;
    
              
              
            
            
  	    var thankText;
	    if (howWouldYouRecBro == 'Email')
	    thankText = "Your brochure has been emailed and will arrive soon";
	    else
	    thankText = "Your brochure has been dispatched and will arrive within a few days";
/*
alert('<p style="height:50px;">&nbsp;</p>'+
    	        '<h4 class="flashReplace" id="brochureThankYou">Thank you for requesting our brochure</h4>'+
				'<h4 class="tCentre"><img src="http://www.parkdeanholidayhomes.co.uk/resource/images/imgTick.png" width="60" height="70" alt="Thank You" /></h4>'+
				'<h5 class="flashReplace" id="brochureDispatch">'+thankText+'</h5>'+
				'<p style="height:50px;">&nbsp;</p>'+
				'<p><a href="#" title="Reload the brochure form"><img src="http://www.parkdeanholidayhomes.co.uk/resource/images/buttons/imgReloadForm.gif" border="0" width="99" style="margin-left:10px;" height="26" alt="Reload Form" onclick="reloadBroReqPanel();" /></a></p>'+
				'<img src="https://tsw0.com/6645/?aid=1&value=1&cur=GBP&ordid="'+ppciId+'"&pdesc="'+typeForPpc+'"&group="'+parksForPpc+'"" height="1" width="1" border="0" />');
*/				
				
               document.getElementById('brochureForm').innerHTML=
                '<p style="height:50px;">&nbsp;</p>'+
    	        '<h4 class="flashReplace" id="brochureThankYou">Thank you for requesting our brochure</h4>'+
				'<h4 class="tCentre"><img src="http://www.parkdeanholidayhomes.co.uk/resource/images/imgTick.png" width="60" height="70" alt="Thank You" /></h4>'+
				'<h5 class="flashReplace" id="brochureDispatch">'+thankText+'</h5>'+
				'<p style="height:50px;">&nbsp;</p>'+
				'<p><a href="#" title="Reload the brochure form"><img src="http://www.parkdeanholidayhomes.co.uk/resource/images/buttons/imgReloadForm.gif" border="0" width="99" style="margin-left:10px;" height="26" alt="Reload Form" onclick="reloadBroReqPanel();" /></a></p>'+
				'<img src="https://tsw0.com/6645/?aid=1&value=1&cur=GBP&ordid="'+ppciId+'"&pdesc="'+typeForPpc+'"&group="'+parksForPpc+'"" height="1" width="1" border="0" />'
				
            $('.flashReplace').sifr();	// this code is used to get flash font
            

              setTimeout("sendAjaxReq('"+xmlString+"');",2000);

//            setTimeout(sendAjaxReq(xmlString),5000);
            
            }
            
          }  
            
    // This function is used to get random number 

    function getRandomNumber(range)
    {
    	return Math.floor(Math.random() * range);
    }
    


        function sendAjaxReq(xmlString)
        {
        
            
            // create XML for HTTP POST
	        var oDomDoc = Sarissa.getDomDocument();
	        oDomDoc = (new DOMParser()).parseFromString(xmlString, "text/xml");
            
             
        	// debug-target: popup XML request for debugging
    
        	// create XMLHTTPRequest object and POST xml
    	    var xmlhttp = new XMLHttpRequest();
    	    xmlhttp.open("POST", "http://www.parkdeanholidayhomes.co.uk/resource/scripts/ajax/insertBrochureReqIntoDb.aspx", true);
    	    xmlhttp.send(oDomDoc);
            //return;	
	        // enable following line
    	    //var oDomResultDoc = xmlhttp.responseXML;

        	// debug-target display xml response result
        	//alert("XML HTTP Response: "+Sarissa.serialize(oDomResultDoc));
    
    }
    
    
    
    
    
    
/*    redundant function used to to reload form as ajax request but does not work in FF
    function reloadForm()
    {
                                // create XML for HTTP POST
            var xmlString="<request><reload>1</reload></request>";                                
	        var oDomDoc = Sarissa.getDomDocument();
	        oDomDoc = (new DOMParser()).parseFromString(xmlString, "text/xml");
                        
            //alert(xmlString);
            
            
            
        	// debug-target: popup XML request for debugging
    
        	// create XMLHTTPRequest object and POST xml
    	    var xmlhttp = new XMLHttpRequest();
    	    xmlhttp.open("POST", "http://localhost/Holidayhomes/resource/scripts/ajax/reloadForm.aspx", false);
    	    xmlhttp.send(oDomDoc);
        
	        // enable following line
    	    var oDomResultDoc = xmlhttp.responseXML;

        	// debug-target display xml response result
        	//alert("XML HTTP Response: "+Sarissa.serialize(oDomResultDoc));
        	
        	var elResult = oDomResultDoc.getElementsByTagName("response");
        	        	
        	htmlFormVal = unescape(elResult[0].getElementsByTagName("brochureformhtml")[0].firstChild.nodeValue)

        	document.getElementById('brochureForm').innerHTML=htmlFormVal;
        	$('.flashReplace').sifr();
        	
    }
    */
    function reloadBroReqPanel()
    {
        formName = document.getElementById('reload');
        formName.reload.value=1;
        formName.action=window.location.href;
        formName.submit();
    }    



    /*This function is called when user select park then according to that we need to display another parks and checkbox options*/
    
    
    function displayAnotherPark(parkDropObj)
    {
        selectedFirstPark = parkDropObj.value;

        /*This code will hide all the hometype div first*/
        document.getElementById('secondParkId').style.display='none';
        document.getElementById('homeType').style.display='none';
       

        var selectedParkRegion="",parkSelectedIndex="";
        /*This code is used to get the region id of selected park */        
        if(selectedFirstPark !="")
        {
          for(i=1; i<parks.length; i+=4)
          {
            if(parks[i]==selectedFirstPark)
            {
              parkSelectedIndex=i;
              selectedParkRegion = parks[i-1];
              break;
            }
          }  
         }

          var holidayHomeType=parks[parkSelectedIndex+2];
          
          if(selectedParkRegion !="" )
          {
            elSel = document.getElementById('sAnd') ;
            /*Remove all the options first*/
            for(i=elSel.options.length; i>=0; i--)
            {elSel.remove(i);}

             oOption = document.createElement("option");
             oOption.text = "Select (Optional):";
             oOption.value = "";
             try {elSel.add(oOption, null);}
             catch(ex) { elSel.add(oOption);}
	                
            for(i=0; i<parks.length; i+=4)
            {          
                if(parks[i] == selectedParkRegion && parks[i+1] != selectedFirstPark)
                {
                    oOption = document.createElement("option");
	                oOption.text = parks[i+2];
	                oOption.value = parks[i+1];
                    try {elSel.add(oOption, null);}
	                catch(ex) { elSel.add(oOption);}
	            }
	        }    
            document.getElementById('secondParkId').style.display='block';
            
            if(holidayHomeType > 3)
            {
                document.getElementById('homeType').style.display='block';
                if(holidayHomeType==4)
                {
                document.getElementById('homeTypeCaravan').style.display='block';
                document.getElementById('homeTypeCont').style.display='block';
                }
                if(holidayHomeType==5)
                {
                document.getElementById('homeTypeCaravan').style.display='block';
                document.getElementById('homeTypLodge').style.display='block';
                }
                if(holidayHomeType==6)
                {
                document.getElementById('homeTypeCaravan').style.display='block';
                document.getElementById('homeTypeCont').style.display='block';
                document.getElementById('homeTypLodge').style.display='block';                
                }                
            }
            
          }
            
    }
    
    
    function secondParkOptions(secondParkDropObj)
    {


        document.getElementById('homeType').style.display='none';
        document.getElementById('homeTypeCaravan').style.display='none';
        document.getElementById('homeTypeCont').style.display='none';
        document.getElementById('homeTypLodge').style.display='none';   
                
        /*First park selected index*/
        var fisrtParkSelectedIndex="";
        for(i=1; i<parks.length; i+=4)
        {
          if(parks[i]==document.getElementById('sPark').value)
          {fisrtParkSelectedIndex=i+2;break;}
        }  
         var holidayHomeTypeForFirstPark = parks[fisrtParkSelectedIndex]; 
                                       
   
                if(holidayHomeTypeForFirstPark==4)
                {
                document.getElementById('homeType').style.display='block';
                document.getElementById('homeTypeCaravan').style.display='block';
                document.getElementById('homeTypeCont').style.display='block';
                }
                if(holidayHomeTypeForFirstPark==5)
                {
                document.getElementById('homeType').style.display='block';
                document.getElementById('homeTypeCaravan').style.display='block';
                document.getElementById('homeTypLodge').style.display='block';
                }
                if(holidayHomeTypeForFirstPark==6)
                {
                document.getElementById('homeType').style.display='block';
                document.getElementById('homeTypeCaravan').style.display='block';
                document.getElementById('homeTypeCont').style.display='block';
                document.getElementById('homeTypLodge').style.display='block';                
                }  
                             
            
        if(secondParkDropObj.value!='')
        {
        
            /*Scond park selected index*/
            var secondParkSelectedIndex="";
            for(i=1; i<parks.length; i+=4)
            {
              if(parks[i]==secondParkDropObj.value)
              {secondParkSelectedIndex=i+2;break;}
            }  


            var holidayHomeType = parks[secondParkSelectedIndex]; 
                

            if(holidayHomeType==4)
            {
            document.getElementById('homeType').style.display='block';
            document.getElementById('homeTypeCaravan').style.display='block';
            document.getElementById('homeTypeCont').style.display='block';
            }
            if(holidayHomeType==5)
            {
            document.getElementById('homeType').style.display='block';
            document.getElementById('homeTypeCaravan').style.display='block';
            document.getElementById('homeTypLodge').style.display='block';
            }
            if(holidayHomeType==6)
            {
             document.getElementById('homeType').style.display='block';
             document.getElementById('homeTypeCaravan').style.display='block';
             document.getElementById('homeTypeCont').style.display='block';
             document.getElementById('homeTypLodge').style.display='block';                
            }                                
          
        }                  
    }