﻿var ActiveSkin = "/UserPages/Skins/Skin1";

/* **************************************** GENERAL **************************************** */
function textMaxLength(obj, maxLength, evt){
    var charCode=(evt.which) ? evt.which : event.keyCode
    var max = maxLength - 0;
    var text = obj.value;
    if(text.length > max)
    {
        var ignoreKeys = [8,46,37,38,39,40,35,36];
        for(i=0;i<ignoreKeys.length;i++)
        {
            if(charCode==ignoreKeys[i])
            {
                return true;
            }
        }
    return false;
    }
    else
    {
    return true;
    }
} 

function popUp(URL, width, height, scroll) {
    var settings
    settings = "width=" + width + ",height=" + height + ",scrollbars=" + scroll + ",toolbar=no";
    popwin = window.open(URL, "", settings);
    popwin.focus();
}

function ClearSearchString() {
    document.getElementById("SearchString").value = '';
    document.getElementById("SearchString").className = 'SearchString_Active'
}

function CheckSearch(e) {
    if (e.keyCode == 13) {
        doSearch();
    }
}

function doSearch() {
    var SearchString = document.getElementById("SearchString").value;
    if (SearchString == "") {
        alert("Please enter a search term")
    } else {
        location.href = "/Search/" + SearchString;
    }
    return false;
}

/* **************************************** PRODUCT LIST **************************************** */

function SetPageNumber(varPageNumber) {
    if (document.location.search.length) {
        var strPrefix = "?";
        var URL = RemoveQuery("PageNumber");
        if (URL.substring(0, 1) == "?") { strPrefix = "&"; }
        location.href = URL + strPrefix + 'PageNumber=' + varPageNumber;
    }else{
        var URL = RemoveFriendlyPageNumber();
        URL = URL + '/Page-' + varPageNumber;
        location.href = OrderURL(URL);
    } 
}

function SetSortBy(varSortValue) {
    if (document.location.search.length) {
        var strPrefix = "?";
        var URL = RemoveQuery("SortBy");
        if (URL.substring(0, 1) == "?") { strPrefix = "&"; }
        location.href = URL + strPrefix + 'SortBy=' + varSortValue;
    } else {
        var URL = RemoveFriendlySortBy(document.location.pathname);
        URL = URL + '/SortBy-' + varSortValue;
        location.href = OrderURL(URL);
    }
}

function SetProdsPerPage(varValue) {
    if (document.location.search.length) {
        var strPrefix = "?";
        var URL = RemoveQuery("PP");
        if (URL.substring(0, 1) == "?") { strPrefix = "&"; }
        location.href = URL + strPrefix + 'PP=' + varValue;
    } else {
        var URL = RemoveFriendlyPageNumber();
        URL = RemoveFriendlyPerPage(URL);
        URL = URL + '/PP-' + varValue;
        location.href = OrderURL(URL);
    }
}

function RemoveQuery(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    var URL = "";
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair.length > 1) {
            if (pair[0].toString().toLowerCase() != variable.toString().toLowerCase()) {
                URL = URL + '&' + pair[0] + '=' + pair[1];
            }
        }
    }
    if (URL.toString().substring(0, 1) == '&') {
        URL = '?' + URL.toString().substring(1, URL.toString().length);
    }
    return URL;
}

function RemoveFriendlyPageNumber() {
    var query = window.location.pathname;
    var NewURL = window.location.pathname;
    var CurrentURL;
    var vars = query.split("/");
    var URL = "";
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i];
        if (pair.length > 1) {
            if (pair.toString().toLowerCase().substring(0,5) == 'page-') {
                for (var x = 0; x < 100; x++) {
                    if (pair.toString().toLowerCase() == 'page-' + x) {
                        NewURL = NewURL.replace("/Page-" + x + "", "");
                    }
                }
            }
        }
    }
    return NewURL;
}

function RemoveFriendlyPerPage(URL) {
    var query = URL;
    var NewURL = URL;
    var vars = query.split("/");

    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i];
        if (pair.length > 1) {
            if (pair.toString().toLowerCase().substring(0, 3) == 'pp-') {
                for (var x = 0; x < 99999; x++) {
                    if (pair.toString().toLowerCase() == 'pp-' + x) {
                        NewURL = URL.replace("/PP-" + x + "", "");
                    }
                }
            }
        }
    }
    return NewURL;
}

function RemoveFriendlySortBy(URL) {
    var query = URL;
    var NewURL = URL;
    var vars = query.split("/");

    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i];
        if (pair.length > 1) {
            if (pair.toString().toLowerCase().substring(0, 7) == 'sortby-') {
                for (var x = 0; x < 99999; x++) {
                    if (pair.toString().toLowerCase() == 'sortby-' + x) {
                        NewURL = URL.replace("/SortBy-" + x + "", "");
                    }
                }
            }
        }
    }
    return NewURL;
}

function RemoveFriendlySortBy(URL) {
    var query = URL;
    var NewURL = URL;
    var vars = query.split("/");

    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i];
        if (pair.length > 1) {
            if (pair.toString().toLowerCase().substring(0, 7) == 'sortby-') {
                for (var x = 0; x < 99999; x++) {
                    if (pair.toString().toLowerCase() == 'sortby-' + x) {
                        NewURL = URL.replace("/SortBy-" + x + "", "");
                    }
                }
            }
        }
    }
    return NewURL;
}


function OrderURL(URL) {
    var query = URL;
    var NewURL = URL;
    var vars = query.split("/");
    var pp = "";
    var page = "";
    var sortby = "";

    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i];
        if (pair.length > 1) {
            if (pair.toString().toLowerCase().substring(0, 3) == 'pp-') {
                for (var x = 0; x < 99999; x++) {
                    if (pair.toString().toLowerCase() == 'pp-' + x) {
                        pp = "/PP-" + x;
                    }
                }
            }

            if (pair.toString().toLowerCase().substring(0, 5) == 'page-') {
                for (var x = 0; x < 100; x++) {
                    if (pair.toString().toLowerCase() == 'page-' + x) {
                        page = "/Page-" + x;
                    }
                }
            }

            if (pair.toString().toLowerCase().substring(0, 7) == 'sortby-') {
                for (var x = 0; x < 100; x++) {
                    if (pair.toString().toLowerCase() == 'sortby-' + x) {
                        sortby = "/SortBy-" + x;
                    }
                }
            }
        }
    }
    
    var RedirectURL;
    RedirectURL = RemoveFriendlyPageNumber();
    RedirectURL = RemoveFriendlyPerPage(RedirectURL);
    RedirectURL = RemoveFriendlySortBy(RedirectURL);

    RedirectURL = RedirectURL + page + pp + sortby;

    return RedirectURL;
}
/* **************************************** PRODUCT DETAIL **************************************** */

function ChangeMoreInformation(strObj) {
    var tabs = document.getElementById("MoreInformation_Tabs").getElementsByTagName('div');
    var info = document.getElementById("MoreInformation_Detail").getElementsByTagName('p');
    for (var i = 0; i < tabs.length; i++) {
        if (tabs[i].id.substring(0, 4) == 'Tab_') {
            tabs[i].className = '';
            document.getElementById("Tab_" + strObj).className = 'Active';
        }
    }
    for (var i = 0; i < info.length; i++) {
        if (info[i].id.substring(0, 12) == 'Information_') {
            info[i].style.display = 'none';
            document.getElementById("Information_" + strObj).style.display = 'block';
        }
    }
}

function SelectStock(varID) {
    if (document.getElementById("StockID").value != "") {
        try { document.getElementById("Btn_" + document.getElementById("StockID").value).src = ActiveSkin + "/Images/Btn_InStock.jpg"; } catch (e) { }
    }
    document.getElementById("StockID").value = varID;
    try { document.getElementById("Btn_" + varID).src = ActiveSkin + "/Images/Btn_InStock_Selected.jpg"; } catch (e) { }
    document.getElementById("BtnAdd").disabled = "";
    document.getElementById("BtnAdd").src = ActiveSkin + "/Images/Buttons/AddToBasket.jpg";
    $('#LinkAdd')[0].onclick = null;
    $('#LinkAdd').click(function () { AddItemToBasket() });
}

function NoGrid(StockID, BtnType) {
    document.getElementById("StockID").value = StockID;
    $(window).bind("load", function () {
        switch (BtnType) {

            case "Email":
                document.getElementById("BtnAdd").src = ActiveSkin + "/Images/Buttons/AddToBasket.jpg";
                $('#LinkAdd')[0].onclick = null;
                $('#LinkAdd').click(function () { document.getElementById('EmailWhenBackInStock').style.display = ''; }); //This link may need changing when email when in stock is added.
                break;
            case "PreOrder":
                SelectStock(StockID); // This may need changing in the future
                break;
            case "Order":
                SelectStock(StockID);
                break;
            case "CantBuy":
                document.getElementById("BtnAdd").src = ActiveSkin + "/Images/Btn_AddBasketOut.jpg";
                $('#LinkAdd')[0].onclick = null;
                $('#LinkAdd').click(function () { return false; });
                break;
        }
    });
}

function AddItemToBasket() {
    var StockID;
    var Qty;
    if (document.getElementById("StockID").value != "") {
        StockID = document.getElementById("StockID").value;
        Qty = document.getElementById("Qty").value;
        location.href = "/Basket/AddToBasket.aspx?Qty=" + Qty + "&StockID=" + StockID;
    }
}

function SetMainProductImage(image) {
    var strImagePath;
    strImagePath = image.src;
    document.getElementById("MainProductImage").src = strImagePath.replace("Basket", "Large");
}

/* **************************************** EMAIL WHEN BACK IN STOCK **************************************** */

function EmailWhenBackInStock(StockID, ProdCode, Name, Email) {
    EWIS_AjaxGetData("/EmailWhenInStock.aspx?StockID=" + StockID + "&ProductCode=" + ProdCode + "&Email=" + Email + "&Name=" + Name, EWIS_AjaxHandler);
}
function EWIS_AjaxGetData(url, responseHandler) {
    if (window.XMLHttpRequest) {
        // browser has native support for XMLHttpRequest object          
        req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        // try XMLHTTP ActiveX (Internet Explorer) version          
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (req) {
        req.onreadystatechange = responseHandler;
        req.open('get', url, true);
        req.setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 GMT");
        req.setRequestHeader("Cache-Control", "no-cache");
        req.setRequestHeader("content-type", "application/x-www-form-urlencoded");
        req.send('');
    }
    else { alert('Your browser does not seem to support XMLHttpRequest.'); }
}
function EWIS_AjaxHandler() {

    try {
        if (req.readyState == 4 ||
            req.readyState == 'complete') {
            document.getElementById('EWISDetails').innerHTML = req.responseText;
            return false;
        }
    }
    catch (e) {
        alert('Error in Ajax respone:' + req.readyState);
        return false;
    }
}

/* **************************************** PRODUCT REVIEWS **************************************** */

function AddProductReview() {
    document.getElementById("ProductReviewAdd").style.display = "";
}

function ShowProductReview() {
    if (document.getElementById("ShowProductReviews").style.display != "") {
        document.getElementById("ShowProductReviews").style.display = "";
        document.getElementById("ShowHideReview").innerHTML = "<b>Hide Product Reviews</b>";
    } else {
        document.getElementById("ShowProductReviews").style.display = "none";
        document.getElementById("ShowHideReview").innerHTML = "<b>Show Product Reviews</b>";
    }
}

function AjaxGetDataProductReview(url, responseHandler) {
    if (window.XMLHttpRequest) {
        // browser has native support for XMLHttpRequest object          
        reqMail = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        // try XMLHTTP ActiveX (Internet Explorer) version          
        reqMail = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (reqMail) {
        reqMail.onreadystatechange = responseHandler;
        reqMail.open('get', url, true);
        reqMail.setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 GMT");
        reqMail.setRequestHeader("Cache-Control", "no-cache");
        reqMail.setRequestHeader("content-type", "application/x-www-form-urlencoded");
        reqMail.send('');
    }
    else { alert('Your browser does not seem to support XMLHttpRequest.'); }
}

function AjaxHandler_ProductReview() {
    try {
        if (reqMail.readyState == 4 ||
            reqMail.readyState == 'complete') {
            document.getElementById('ProductReviewAdd').style.display = 'none';
            alert("Thank you for submitting a product review.")
        }
    }
    catch (e) {
        alert('Error in Ajax respone:' + reqMail.readyState);
    }
}

function SubmitProductReview() {
    var Message = "";
    var Action = "";
    var Code = document.getElementById("ProductCode").value;
    var Name = document.getElementById("ProductReviewName").value;
    var Email = document.getElementById("ProductReviewEmail").value;
    var Rating = document.getElementById("ProductReviewRating").value;
    var Review = document.getElementById("ProductReview").value;
    Review = Review.replace(/\r\n/g, "{CS_LineBreak}\r\n");

    if (isValidEmail(Email) == false) { Message = Message + "Invalid email address\n"; }
    if (Name == "") { Message = Message + "Please enter your Name\n"; }
    if (Rating == "" || Rating == "0") { Message = Message + "Please enter your Rating\n"; }
    if (Review == "") { Message = Message + "Please enter your Review\n"; }
    if (Message == "") { Action = "True"; } else { Action = "False"; }
    if (Action == "True") { AjaxGetDataProductReview("/ReviewSave.aspx?Code=" + Code + "&Name=" + Name + "&Rating=" + Rating + "&Email=" + Email + "&Review=" + Review, AjaxHandler_ProductReview); } else { alert(Message); }
}
function isValidEmail(str) {
    return (str.indexOf(".") > 0) && (str.indexOf("@") > 0);
}

/* **************************************** BASKET **************************************** */

function GetMiniBasket() {
    AjaxGetData("/WS/basketwebservice.aspx", AjaxHandler);
}
function AjaxGetData(url, responseHandler) {
    if (window.XMLHttpRequest) {
        // browser has native support for XMLHttpRequest object          
        req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        // try XMLHTTP ActiveX (Internet Explorer) version          
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (req) {
        req.onreadystatechange = responseHandler;
        req.open('get', url, true);
        req.setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 GMT");
        req.setRequestHeader("Cache-Control", "no-cache");
        req.setRequestHeader("content-type", "application/x-www-form-urlencoded");
        req.send('');
    }
    else { alert('Your browser does not seem to support XMLHttpRequest.'); }
}
function AjaxHandler() {

    try {
        if (req.readyState == 4 ||
            req.readyState == 'complete') {
            document.getElementById('TopNavigation_MiniBasket').innerHTML = req.responseText;
        }
    }
    catch (e) {
        alert('Error in Ajax respone:' + req.readyState);
    }
}

function ShowMiniBasketItems() { document.getElementById("MiniBasket_Items").style.display = 'block'; }
function HideMiniBasketItems() { document.getElementById("MiniBasket_Items").style.display = 'none'; }

function ShowHideMiniBasketItems() {
    if (document.getElementById("MiniBasket_Items").style.display = 'none') {
        document.getElementById("MiniBasket_Items").style.display = 'block';
    }else{
        document.getElementById("MiniBasket_Items").style.display = 'none';
    }
}


function setShipping(varID) {
    var URL = self.location.href.replace(/(\?.*)/, "");
    self.location.href = URL + "?ShippingID=" + varID;
}

function UpdateBasket() {
    location.href = "/Basket/UpdateBasket.aspx"
}

/* **************************************** CHECKOUT **************************************** */

function HideElement(id) {
    document.getElementById(id).style.display = 'none';
}

function ShowElement(id) {
    document.getElementById(id).style.display = 'block';
}
function CheckCustomerDetails() {
    var sMsg = '';
    if (document.getElementById("ContentPlaceHolder1_cboTitle").value == '') { sMsg = sMsg + 'Please select your title.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtFirstName").value == '') { sMsg = sMsg + 'Please enter your first name.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtLastName").value == '') { sMsg = sMsg + 'Please enter your last name.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtTelephone1").value == '') { sMsg = sMsg + 'Please enter your phone 1.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtEmail").value == '') { sMsg = sMsg + 'Please enter your email address.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtEmailConfirm").value == '') { sMsg = sMsg + 'Please confirm your email address.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtEmail").value != document.getElementById("ContentPlaceHolder1_txtEmailConfirm").value) { sMsg = sMsg + 'Please ensure your email addresses match.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtPostCode").value == '') { sMsg = sMsg + 'Please enter your post code.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtAddress1").value == '') { sMsg = sMsg + 'Please enter your house no/name.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtAddress2").value == '') { sMsg = sMsg + 'Please enter your address line 1.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtAddress4").value == '') { sMsg = sMsg + 'Please enter your town/city.\n'; }
    if (document.getElementById("ContentPlaceHolder1_TandC").checked == false) { sMsg = sMsg + 'Please read and accept our terms and conditions.\n'; }

    if (document.getElementById("ContentPlaceHolder1_optDeliveryNo").checked == true) {
        if (document.getElementById("ContentPlaceHolder1_cboTitleD").value == '') { sMsg = sMsg + 'Please enter your delivery title.\n'; }
        if (document.getElementById("ContentPlaceHolder1_txtFirstNameD").value == '') { sMsg = sMsg + 'Please enter your delivery first name.\n'; }
        if (document.getElementById("ContentPlaceHolder1_txtLastNameD").value == '') { sMsg = sMsg + 'Please enter your delivery last name.\n'; }
        if (document.getElementById("ContentPlaceHolder1_txtTelephone1D").value == '') { sMsg = sMsg + 'Please enter your delivery phone 1.\n'; }
        if (document.getElementById("ContentPlaceHolder1_txtPostCodeD").value == '') { sMsg = sMsg + 'Please enter your delivery postcode.\n'; }
        if (document.getElementById("ContentPlaceHolder1_txtAddress1D").value == '') { sMsg = sMsg + 'Please enter your delivery house no/name.\n'; }
        if (document.getElementById("ContentPlaceHolder1_txtAddress2D").value == '') { sMsg = sMsg + 'Please enter your delivery address line 1.\n'; }
        if (document.getElementById("ContentPlaceHolder1_txtAddress4D").value == '') { sMsg = sMsg + 'Please enter your delivery town/city.\n'; }
    }

    try {
        if (document.getElementById("ContentPlaceHolder1_optRegisterYes").checked == true) {
            if (document.getElementById("ContentPlaceHolder1_txtPassword").value == '') { sMsg = sMsg + 'Please enter your password.\n'; }
            if (document.getElementById("ContentPlaceHolder1_txtPasswordConfirm").value == '') { sMsg = sMsg + 'Please confirm your password.\n'; }
            if (document.getElementById("ContentPlaceHolder1_txtPassword").value != document.getElementById("ContentPlaceHolder1_txtPasswordConfirm").value) { sMsg = sMsg + 'Please ensure your passwords match.\n'; }
        }
    } catch (err) { }

    if (sMsg == '') { return true; } else { alert(sMsg); return false; }
}

function CheckCustomerLogin() {
    var sMsg = '';
    if (document.getElementById("ContentPlaceHolder1_txtEmailLogin").value == '') { sMsg = sMsg + 'Please enter your email address.\n'; }
    if (document.getElementById("ContentPlaceHolder1_txtPasswordLogin").value == '') { sMsg = sMsg + 'Please enter your password.\n'; }

    if (sMsg == '') { return true; } else { alert(sMsg); return false; }
}

function SummaryGiftWrap() {
    var rads = document.getElementsByName("GiftWrap");
    if (rads[0].checked) {
        document.getElementById("GiftWrapOptions").style.display = "";
    }
    else if (rads[1].checked) {
        document.getElementById("GiftWrapOptions").style.display = "none";
        __doPostBack('REMOVEGIFTWRAP', 'REMOVEGIFTWRAP');
    }
}

function CheckCustomerEmail() {
    var sMsg = '';
    if (document.getElementById("ContentPlaceHolder1_txtEmail").value == '') { sMsg = sMsg + 'Please enter your email address.\n'; }

    if (sMsg == '') { return true; } else { alert(sMsg); return false; }
}

/* **************************************** STATIC PAGES **************************************** */

function CheckMailingList() {
    var sMsg = '';
    if (document.getElementById("firstname").value == '') { sMsg = sMsg + 'Please enter your first name.\n'; }
    if (document.getElementById("surname").value == '') { sMsg = sMsg + 'Please enter your surname.\n'; }
    if (document.getElementById("email").value == '') { sMsg = sMsg + 'Please enter your email address.\n'; }

    if (sMsg == '') { return true; } else { alert(sMsg); return false; }
}

/* **************************************** DROPDOWN MENUS **************************************** */

var ProdCode = "";

function GetColours(ProductCode) {
    ProdCode = ProductCode;
    $("select[id$=Colours] > option").remove();
    $.ajax(
            { type: "POST",
                url: "/WS/GetStock.aspx?ProductCode=" + ProductCode,
                dataType: "xml",
                success: function (data) {
                    var select = $('#Colours');
                    select.append("<option value=''></option>");
                    var count = getCount(data, { "Colour": "Colour" });
                    if (count.Colour > 0) {
                        $(data).find("Colour").each(function () {
                            var select = $('#Colours');
                            if ($.browser.msie) { var title = this.text; } else { var title = this.textContent; }
                            document.getElementById('Colours').style.display = '';
                            select.append("<option value='" + title + "'>" + title + "</option>");
                        }
                        );
                        if (count.Colour > 1) {
                            document.getElementById('Colours').style.display = '';
                            select.children(":first").text("Colours").attr("selected", true);
                        } else { document.getElementById("Colours").style.display = 'none'; GetSizes(); }

                        if (count.Colour == 1 && $('#Colours option:selected').val() != "") { document.getElementById('Colours').style.display = 'none'; }
                    } else {
                        document.getElementById("Colours").style.display = 'none';
                        GetSizes();
                    }
                }
            }
            );
}

function GetSizes() {
    var varColour = $('#Colours option:selected').val();
    if (varColour == undefined) { varColour = ''; }
    document.getElementById('ProductDetail_StockMessage').innerHTML = '';
    $("select[id$=Sizes] > option").remove();
    $.ajax(
            { type: "POST",
                url: "/WS/GetStock.aspx?ProductCode=" + ProdCode + "&Colour=" + varColour,
                dataType: "xml",
                success: function (data) {
                    var select = $('#Sizes');
                    select.append("<option value=''></option>");
                    var count = getCount(data, { "Size": "Size" });
                    if (count.Size > 0) {
                        $(data).find("Size").each(function () {
                            var select = $('#Sizes');
                            if ($.browser.msie) { var title = this.text; } else { var title = this.textContent; }
                            select.append("<option value='" + title + "'>" + title + "</option>");
                        }
                        );
                        if (count.Size > 1) {
                            document.getElementById('Sizes').style.display = '';
                            select.children(":first").text("Sizes").attr("selected", true);
                        } else { document.getElementById("Sizes").style.display = 'none'; GetStyles(); }

                        if (count.Size == 1 && $('#Sizes option:selected').val() != "") { document.getElementById('Sizes').style.display = 'none'; }
                    } else {
                        document.getElementById("Sizes").style.display = 'none';
                        GetStyles();
                    }
                }
            }
            );
}


function GetStyles() {
    var varColour = $('#Colours option:selected').val();
    var varSize = $('#Sizes option:selected').val();
    if (varColour == undefined) { varColour = ''; }
    if (varSize == undefined) { varSize = ''; }
    $("select[id$=Styles] > option").remove();
    $.ajax(
            { type: "POST",
                url: "/WS/GetStock.aspx?ProductCode=" + ProdCode + "&Colour=" + varColour + "&Size=" + varSize,
                dataType: "xml",
                success: function (data) {
                    var select = $('#Styles');
                    select.append("<option value=''></option>");
                    var count = getCount(data, { "Style": "Style" });
                    if (count.Style > 0) {
                        $(data).find("Style").each(function () {
                            var select = $('#Styles');
                            if ($.browser.msie) { var title = this.text; } else { var title = this.textContent; }
                            select.append("<option value='" + title + "'>" + title + "</option>");
                        }
                         );
                        if (count.Style > 1) {
                            document.getElementById('Styles').style.display = '';
                            select.children(":first").text("Styles").attr("selected", true);
                        } else { document.getElementById("Styles").style.display = 'none'; GetStockRecord(); }

                        if (count.Style == 1 && $('#Styles option:selected').val() != "") { document.getElementById('Styles').style.display = 'none'; }
                    } else {
                        document.getElementById("Styles").style.display = 'none';
                        GetStockRecord();
                    }
                }
            }
            );
}

function getCount(xml, nodes) {
    var response = {};
    for (var node in nodes) {
        response[node] = $(nodes[node], xml).length;
    }
    return response;
}

function GetStockRecord() {
    var varColour = $('#Colours option:selected').val();
    var varSize = $('#Sizes option:selected').val();
    var varStyle = $('#Styles option:selected').val();

    if (varColour == undefined) { varColour = ''; }
    if (varSize == undefined) { varSize = ''; }
    if (varStyle == undefined) { varStyle = ''; }

    $.ajax(
        { type: "POST",
            url: "/WS/GetStock.aspx?ProductCode=" + ProdCode + "&Colour=" + varColour + "&Size=" + varSize + "&Style=" + varStyle,
            dataType: "xml",
            success: function (data) {
                var StockCount;

                if ($.browser.msie) {
                    var StockLevel = $(data).find("StockLevels").each(function () { StockCount = this.text; });
                } else {
                    var StockLevel = $(data).find("StockLevels").each(function () { StockCount = this.textContent; });
                }

                if (StockCount > 0) {
                    if ($.browser.msie) {
                        $(data).find("Stock").each(function () { document.getElementById('StockID').value = this.text; document.getElementById('LinkAdd').style.display = ''; document.getElementById('EmailAdd').style.display = 'none'; });
                        $(data).find("Prices").each(function () { document.getElementById(ProdCode).innerHTML = '&pound;' + this.text; });
                        document.getElementById('ProductDetail_StockMessage').innerHTML = 'Product in stock!'
                    }
                    else {
                        $(data).find("Stock").each(function () { document.getElementById('StockID').value = this.textContent; document.getElementById('LinkAdd').style.display = ''; document.getElementById('EmailAdd').style.display = 'none'; });
                        $(data).find("Prices").each(function () { document.getElementById(ProdCode).innerHTML = '&pound;' + this.textContent; });
                        document.getElementById('ProductDetail_StockMessage').innerHTML = 'Product in stock!'
                    }
                } else {
                    document.getElementById('LinkAdd').style.display = 'none';
                    document.getElementById('EmailAdd').style.display = '';
                    document.getElementById('ProductDetail_StockMessage').innerHTML = 'Product not in stock, we can email you when this item is available.';
                }
            }
        })
}
