// Shop Javascript common library

function redirect(to)
{
    switch(to)
    {
        case "checkout":
            window.location = "/shop/checkout";
            break;
        default:
            window.location = to;
            break;
    }
}

window.addEvent('domready', function() {
    $$(".listItem").addEvent("mouseover", function(e){                
        this.addClass("listItem-over");          
    });
    
    $$(".listItem").addEvent("mouseout", function(e){        
        this.removeClass("listItem-over"); 
    });
        
    if (top != self){
        top.location=self.location;
    }   
        
    $$("input").each(function(el){        
        if(el.type=="text" || el.type=="password"){
            el.set("autocomplete", "off");
        }        
    });
    $$("form").set("autocomplete", "off");
});

function PrintPage()
{
    window.print();
}

function findAddress(postcode, destContainer, txtFlatHouseNoClientID, txtStreetNameClientID, txtAddress2ClientID, txtCountyClientID, txtTownClientID)
{
    try
    {
        //make the ajax call  
        var req = new Request({  
            method: 'post',  
            url: '/skins/base/httpHandlers/findAddress.ashx',  
            data: { 'postcode' : postcode, 'mode' : 'find' },  
            onRequest: function(){
                $(destContainer).setHTML("<div style='text-align:center;'><img src='/skins/base/css/img/ajax-loader.gif' /><div>");
            },  
            onComplete: function(response){                 
                var results = eval(response);  
                
                var html = "";
                html += "<div class='find-address-panel'>";
                html += "   <strong>Please select your address below</strong>";
                if(results.length == 0)
                {
                    html += "<p id='" + destContainer + "_ErrorMsg' class='error show'>We could not find any matching addresses on that postcode.</p>"
                }
                else
                {
                    html += "<p id='" + destContainer + "_ErrorMsg' class='error hide'></p>"
                    
                    html += "<select id='" + destContainer + "_AddressList' size='4'>";
                    for(var i=0;i<results.length;i++)                    
                        html += "<option value='" + results[i].id + "'>" + results[i].desc + "</option>";
                    
                    html += "</select>";
                    html += "<input id='" + destContainer + "_SelectAddressButton' type='button' value='Select address' class='button level1' />";
                }
                html += "</div>";
                
                $(destContainer).setHTML(html);  
                
                $(destContainer + "_SelectAddressButton").addEvent('click', function(e) {
                    selectAddress(destContainer, txtFlatHouseNoClientID, txtStreetNameClientID, txtAddress2ClientID, txtCountyClientID, txtTownClientID);
                });
            }  
        }).send();
        
        return false;
    }
    catch(ex)
    {
        return true; //if any error occurs, default to non-JS version
    }     
}

function selectAddress(destContainer, txtFlatHouseNoClientID, txtStreetNameClientID, txtAddress2ClientID, txtCountyClientID, txtTownClientID)
{        
    var id = $(destContainer + "_AddressList").value;
    
    if(id == "")
    {
        $(destContainer + "_ErrorMsg").setHTML("Please select an address from the list.");
        $(destContainer + "_ErrorMsg").removeClass("hide").addClass("show");
    }
    else
    {
        $(destContainer + "_ErrorMsg").removeClass("show").addClass("hide");
        
        var req = new Request({  
            method: 'post',  
            url: '/skins/base/httpHandlers/findAddress.ashx',  
            data: { 'id' : id, 'mode' : 'fetch' },  
            onComplete: function(response){
                var address = eval(response);                
                $(txtFlatHouseNoClientID).set('value', address.OrganisationName);
                $(txtStreetNameClientID).set('value',address.Line1);
                $(txtAddress2ClientID).set('value',address.Line2);
                $(txtCountyClientID).set('value',address.County);
                $(txtTownClientID).set('value',address.PostTown);
            }            
        }).send();    
        
        $(destContainer).setHTML("");
    }   
}