﻿// JScript File

   String.prototype.trim = function(){
    return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,"");
    }

    var _fromTab=null;
   function initShortlist(fromTab){ 
   
        if (fromTab!=null)
            _fromTab=fromTab;
        else
            _fromTab=1;
            
        $("divShortlist").style.display="none";
        if (fromTab==0)
            $("divEmptyShortlist").style.display="none";
        $("divShortlistWait").style.display="";

        
        var url = pre + "/Shortlists/GetAcomShortlist.aspx?ms=" + new Date().getTime() + "&fromtab=" + _fromTab;
        if ($("GuestKey").value!=""){
            url += "&GuestKey=" + escape($("GuestKey").value);
        }
        
        new Ajax.Request(url, {method:"GET",
                                postBody: "",
                                onSuccess: function(transport){
                                    var res=transport.responseText;
                                         if (String(res).substring(27, 32)=="EMPTY")
                                         {
                                            $("divShortlist").style.display="none";
                                            if (fromTab==0)
                                                $("divEmptyShortlist").style.display="";
                                         }
                                         else
                                         {
                                            $("divShortlist").innerHTML=res;
                                            $("divShortlist").style.display="";
                                            
                                            if (fromTab==0)
                                                $("divEmptyShortlist").style.display="none";
                                         }
                                     $("divShortlistWait").style.display="none";
                                     },
                                onFailure: function(){
                                    document.getElementById("divShortlist").innerHTML="Error";
                                    $("divShortlist").style.display="";
                                    $("divShortlistWait").style.display="none";}}); 
                                    
                                               
        initSaveShortlist();                           
    }
    
    function initSaveShortlist() {
    
        var url = pre + "/Shortlists/SaveShortlist.aspx?ms=" + new Date().getTime();
            
        new Ajax.Request(url, {method:"GET",
                                postBody: "",
                                onSuccess: function(transport){
                                    $("divSaveShortlist").innerHTML=transport.responseText;
                                },
                                onFailure: function(){
                                    $("divSaveShortlist").innerHTML="Error";
                                }
                            }
                        );
                                                                 
    }

    function deleteShortlistItem(paramId, estabId){
        var url = pre + "/Shortlists/DeleteAcomShortlistItem.aspx?ParamId=" + paramId + "&EstabId=" + estabId + "&ms=" + new Date().getTime();
        updateShortlist(url);               
    }
    
    function clearShortlist(){
        var url = pre + "/Shortlists/ClearAcomShortlist.aspx?ms=" + new Date().getTime();
        updateShortlist(url);                
    }
    
    function updateShortlist(url){
    
        $("divShortlist").style.display="none";
        $("divShortlistWait").style.display="";
        
        new Ajax.Request(url, {method:"GET",
                                postBody: "",
                                onSuccess: function(transport){initShortlist(_fromTab);},
                                onFailure: function(){
                                    document.getElementById("divShortlist").innerHTML="Error";
                                    $("divShortlist").style.display="";
                                    $("divShortlistWait").style.display="none";}}); 
    }
    
    function getLatestPrices(paramId, estabId){
    
        setUpdatingMsg(paramId, estabId);
        
        var url = pre + "/Shortlists/RefreshAcomShortlist.aspx?ParamId=" + paramId + "&EstabId=" + estabId + "&ms=" + new Date().getTime();
        if ($("GuestKey").value!=""){
            url += "&GuestKey=" + escape($("GuestKey").value);
        }
        
        new Ajax.Request(url, {method:"POST",
                                postBody: "",
                                onSuccess: function(transport){$("divShortlist").innerHTML=transport.responseText;},
                                onFailure: function(){document.getElementById("divShortlist").innerHTML="Error";}});  
    }
    
    function setUpdatingMsg(paramId, estabId){
    
        var Results = new Array();
        var Count = 0;

        Results = document.getElementsByName("hidEstab");
     
        for (var i = 0; i < Results.length; i++){

            <!--Extract key values-->
            var resultParamId = Results[i].value;
            var resultEstabId = Results[i].id;

            if (resultParamId == paramId){
            
                var div = $("divSLEstabInner" + resultEstabId + "_" + resultParamId);
                 
                if (resultEstabId == estabId){
                    div.innerHTML = $("divUpdateMessage").innerHTML;
                }
                else {
                    div.innerHTML = $("divUpdateMessageSimple").innerHTML;
                }
            }
        }
    }
   
   
    function doCheckEmail() {
  
        var email = $("txtEmail").value.trim();
        
        if (email!=""){
            if (valEmail(email)){
            
               // Check email with ajax
               new Ajax.Request(pre + "/Shortlists/CheckPublicUserEmail.aspx?Email=" + email + "&ms=" + new Date().getTime(), 
                                {method:"GET",
                                postBody: "",
                                onSuccess: function(transport){
                                    if (transport.responseText == "NO_REG"){
                                        // Reveal fields for name and password so user can save
                                       $("lblEmailReg").innerHTML = email;
                                       $("divEmail").style.display = "none";
                                       $("divRegister").style.display = "";
                                    }
                                    else if (transport.responseText == "NO"){
                                        // User requested to retrieve shortlist
                                        alert("We cannot find a shortlist matching this email address. Please check that you have entered it correctly.");
                                    }
                                    else if (transport.responseText == "OK_GET") {
                                        // User has a saved shortlist so reveal radio options
                                        $("divGetOrSave").style.display = "";
                                        // Reveal password field so user can login
                                        $("lblEmail").innerHTML = email;
                                        $("divEmail").style.display = "none";
                                        $("divPassword").style.display = "";
                                    }
                                    else if (transport.responseText == "OK_SAVE") {
                                        // Reveal password field so user can login
                                        $("lblEmail").innerHTML = email;
                                        $("divEmail").style.display = "none";
                                        $("divPassword").style.display = "";
                                    }
                                ;                                        
                                },
                                onFailure: function(){alert("An Error Occurred") }});  
            }
            else {alert("This does not appear to be a valid email address. Please check that you have entered it correctly.");}
        }
        else {alert("Please enter your email address.");}
    }
    
    function doRegister() {
    
        var email = $("txtEmail").value.trim();
        var firstName = $("txtFirstName").value.trim();
        var password = $("txtPassword").value.trim();
        
        if(name=!""&&password!=""){
        
             new Ajax.Request(pre + "/Shortlists/RegisterPublicUser.aspx?Email=" + email + "&FirstName=" + firstName + "&Password=" + password + "&ms=" + new Date().getTime(), 
                            {method:"GET",
                            postBody: "",
                            onSuccess: function(){initShortlist(_fromTab);},
                            onFailure: function(){alert("An Error Occurred") }});  
        }
        else {alert("You seem to have missed out your name or password. Please check and try again.");}
    
    
    }
    
    function doLogin() {
    
        var email = $("txtEmail").value.trim();
        var password = $("txtPasswordLogin").value.trim();
        
        var url = pre + "/Shortlists/LoginPublicUser.aspx?Email=" + email + "&Password=" + password + "&ms=" + new Date().getTime()
        
        if ($("rdoSave").checked){
            url += "&Save=1"
        }
                
        new Ajax.Request(url, 
                        {method:"GET",
                        postBody: "",
                        onSuccess: function(transport){
                            if (transport.responseText == "NO"){
                                alert("This password is incorrect. Please check that you have entered it correctly.");
                            }
                            else {
                                  initShortlist(_fromTab);
                            }
                        ;                                        
                        },
                        onFailure: function(){alert("An Error Occurred") }});  

    }
    
    function doLogout() {
        
       new Ajax.Request(pre + "/Shortlists/LogoutPublicUser.aspx?ms=" + new Date().getTime(), 
                        {method:"GET",
                        postBody: "",
                        onSuccess: function(){
                                initShortlist(_fromTab);
                        }
                        });  
    
    }
    
    function sendEmail() {
    
        var fromName = $("txtFromName").value.trim();
        var toEmail = $("txtToEmail").value.trim();
        var msg = escape($("txtMessage").value.trim());
        
        if (toEmail!=""){
            if (valEmail(toEmail)){
        
               new Ajax.Request(pre + "/Shortlists/EmailShortlist.aspx?FromName=" + fromName + "&ToEmail=" + toEmail + "&Message=" + msg + "&ms=" + new Date().getTime(), 
                                {method:"GET",
                                postBody: "",
                                onSuccess: function(transport){
                                    alert("This shortlist has been sent to " + toEmail);
                                    $("txtFromName").value = "";
                                    $("txtToEmail").value = "";
                                    $("txtMessage").value = "";
                                    },
                                onFailure: function(){alert("An Error Occurred") }});  
            }
            else {alert("The email address you want to send to does not appear to be valid. Please check that you have entered it correctly.");}
        }
        else {alert("Please enter an email address to send to.");}
        
        
    }
    
    function sendReminder() {
    
        var email = $("txtEmail").value;
   
       new Ajax.Request(pre + "/Shortlists/EmailPassword.aspx?Email=" + email + "&ms=" + new Date().getTime(), 
                        {method:"GET",
                        postBody: "",
                        onSuccess: function(transport){
                            alert("A password reminder has been sent to your email address. Please check your email to find it.");
                            },
                        onFailure: function(){alert("An Error Occurred") }});  
    }
    
    function valEmail(email) {
        var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
        return reg.test(email);
    }
    
    function cancelRegister(){
        $("lblEmailReg").innerHTML = "";
        $("divEmail").style.display = "";
        $("divRegister").style.display = "none";
    }
    
    function cancelLogin(){
        $("lblEmail").innerHTML = "";
        $("divEmail").style.display = "";
        $("divPassword").style.display = "none";
    }
    
    function bookEstabShortlist(isHol, iPriceId, slItemId, price){

        var frm = document.frmBook;

        //nb; the querystring values set here aren't used anywhere, apart from picking up in WebAnalysis reports
        //so we can see how many bookings are coming from shortlists.
        if(isHol){frm.action = pre + "/holiday/hoholidaydetails.aspx?slid=" + slItemId;}
	    else{frm.action = pre + "/accomodation/acbookdetails.aspx?slid=" + slItemId;}
        if ($("ddlCurrency")){document.frmBook._selectedCurrency.value = $("ddlCurrency").value;}
        frm._price.value = price
	    frm._PriceId1.value = iPriceId;
	    frm._ShortlistItemId.value = slItemId;    	
	    frm.submit()
    }
    
    function BookMultiOccShortlist(isHol, estabId, rooms, slItemId){
	    
	    var total = 0;	
	    var frm = document.frmBook;	
	    
	    for (var iRoom=0; iRoom < rooms; iRoom++) {
	        options = document.getElementsByName("rdosEstab" + estabId + "Room" + iRoom);

	        for (var iOpt = 0; iOpt < options.length; iOpt++){
	            
                if (options[iOpt].checked) {                
                    $("_PriceId" + (iRoom+1)).value = options[iOpt].value;                    
                    total ++;		
                }
            } 
	    }
	    
	    if(total!= rooms){
		    alert("Please Select Room and Board Types\n\nYou must select a room/board type for each of the " + rooms + " rooms you require.\nEach room is highlighted in a different colour.\nPlease click on the radio button to left of the room type to select it.");
		    return;	
	    }
	    
	    frm._ShortlistItemId.value = slItemId;
	    
        //nb; the querystring values set here aren't used anywhere, apart from picking up in WebAnalysis reports
        //so we can see how many bookings are coming from shortlists.
	    if(isHol){frm.action = pre + "/holiday/hoholidaydetails.aspx?slid=" + slItemId;}
	    else{frm.action = pre + "/accomodation/acbookdetails.aspx?slid=" + slItemId;}	
	    
	    frm.submit(); 
    }
    
    function showRoomsShortlist(slItemId){
        var rows = new Array();
        rows = jQuery('.row' + slItemId);
        
        for (var i = 0; i < rows.length; i++){
            rows[i].style.display = ""; 
        } 

        $("lnkShow" + slItemId).style.display = "none"; 
        $("lnkHide" + slItemId).style.display = "";     
   }
      
   function hideRoomsShortlist(slItemId){
        var rows = new Array();

        rows = jQuery('.row' + slItemId);

        for (var i = 0; i < rows.length; i++){
            rows[i].style.display = "none";
        } 

        $("lnkHide" + slItemId).style.display = "none";  
        $("lnkShow" + slItemId).style.display = "";        
    }
    
    
    function showEstabDetailsSL(estabId){
    
        $("divShortlistWait").style.display="inline";  
        $("divShortlist").style.display="none";  
        
        var sURL = pre + "/Shortlists/GetEstabInfo.aspx?estabid=" + estabId + "&ms=" + new Date().getTime() + "&fromtab=" + _fromTab;
        if ($("GuestKey").value!=""){
            sURL += "&gk=" + escape($("GuestKey").value);
        }
            
        new Ajax.Request(sURL, {method:"POST",
                                postBody: "",
                                onSuccess: function(transport)
                                {       
                                    $("divShortlist").innerHTML=transport.responseText;
                                    $("divShortlistWait").style.display="none";  
                                    $("divShortlist").style.display="inline";
                                    $("divShortlistBack").style.display="inline";
                                    setupMap();
                                },
                                onFailure: function()
                                {
                                    $("divShortlistWait").innerHTML="Error";  
                                }
                            }
                        ); 
    }
    
    function setupMap(){
        if($("EstabDets_map_canvas")){

            var map = new GMap2($("EstabDets_map_canvas"));
            map.addControl(new GSmallMapControl());
            map.addControl(new GMapTypeControl());                                
            map.setCenter(new GLatLng($("_hiddenEstabLat").value, $("_hiddenEstabLng").value), 13);
            
            var point = new GLatLng($("_hiddenEstabLat").value, $("_hiddenEstabLng").value);
            map.addOverlay(new GMarker(point));                
        }
    }  
    
