// ------------------------------------------------------------------------------------------
// Copyright AspDotNetStorefront.com, 1995-2009.  All Rights Reserved.
// http://www.aspdotnetstorefront.com
// For details on this license please visit  the product homepage at the URL above.
// THE ABOVE NOTICE MUST REMAIN INTACT. 
// ------------------------------------------------------------------------------------------

function makeHttpRequest(url, element, calltype) {
    
    var http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) { }
        }
    }
    if (!http_request) {
        alert('Browser doesn\'t support Ajax. Site will NOT FULLY function properly.');
        return false;
    }
    http_request.onreadystatechange = function() {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                loadXML(http_request.responseXML, calltype);
            } else {
                alert('There was a problem with the request. (Code: ' + http_request.status + ')');
            }
        }
    }
    http_request.open('GET', url, true);
    http_request.send(null);
}

function loadXML(xml, calltype) {
    if (calltype == 'shipping') {
        var string = '';
        var root = xml.getElementsByTagName('Shipping')[0];
        for (i = 0; i < root.childNodes.length; i++) {
            var node = root.childNodes[i].tagName;
            string += root.getElementsByTagName(node)[0].childNodes[0].nodeValue + "<br />";
        }
        if (document.getElementById('ShipQuote')) {
            document.getElementById('ShipQuote').innerHTML = string;
        }
    }
    if (calltype == 'pricing') {
        var prnode = xml.getElementsByTagName('PriceHTML')[0];
        var variantnode = xml.getElementsByTagName('VariantID')[0];
        var NewPrice = "Not Found";
        var VariantID = "0";
        if (prnode != undefined) {
            NewPrice = xml.getElementsByTagName('PriceHTML')[0].firstChild.data
        }
        if (variantnode != undefined) {
            VariantID = xml.getElementsByTagName('VariantID')[0].firstChild.data
        }
        //alert("VariantID=" + VariantID + ", NewPrice=" + NewPrice);
        if (document.getElementById('VariantPrice_' + VariantID)) {
            document.getElementById('VariantPrice_' + VariantID).innerHTML = NewPrice;
        }
    }
    if (calltype == 'postalcode') {
        var foundnode = xml.getElementsByTagName('Found')[0].firstChild.data
        if (foundnode == 'Yes') {
            document.getElementById('ShipQuoteForm').style.display = 'block';
            document.getElementById('ShipQuotePrice').style.display = 'none';
            document.getElementById('ShipQuote').style.display = 'none';
            document.getElementById('PostalForm').style.display = 'none';
        } 
        if (foundnode == 'No') {
            document.getElementById('ShipQuotePrice').style.display = 'block';
            document.getElementById('ShipQuoteForm').style.display = 'none';
            document.getElementById('ShipQuote').style.display = 'none';
            document.getElementById('PostalForm').style.display = 'none';
        }
        if (foundnode == 'Invalid') {
            Error('invalidpostal');
        }
    }
    if (calltype == 'subscription') {
        var foundnode = xml.getElementsByTagName('Found')[0].firstChild.data
        if (foundnode == 'Yes') {
            document.getElementById('SubscriptionQuote').innerHTML = "Our records indicate that you already subscribed to HURT Clothing Newsletter.";
        }
        if (foundnode == 'No') {
            //document.getElementById('SubscriptionQuote').innerHTML = "You have been added to our list.";
            window.location = "http://www.hurtclothing.com/t-thanksforsubscribingHome.aspx"
        }
        if (foundnode == 'Invalid') {
            Error('subscription');
        }
    }
    if (calltype == 'subscriptionfooter') {
        var foundnode = xml.getElementsByTagName('Found')[0].firstChild.data
        if (foundnode == 'Yes') {
            document.getElementById('SubscriptionQuoteFooter').innerHTML = "Our records indicate that you already subscribed to HURT Clothing Newsletter.";
        }
        if (foundnode == 'No') {
            //document.getElementById('SubscriptionQuoteFooter').innerHTML = "You have been added to our list.";
            window.location = "http://www.hurtclothing.com/t-thanksforsubscribingfooter.aspx"
        }
        if (foundnode == 'Invalid') {
            Error('subscriptionfooter');
        }
    }    
}

function getShipping() {
    if (document.getElementById('Quantity') == undefined || document.getElementById('VariantID') == undefined) {
        return;
    }
    var VariantID = document.getElementById('VariantID');
    var Quantity = document.getElementById('Quantity');
    if (Quantity == '') {
        Quantity = '1';
    }
    var Country = '';
    if (document.getElementById('Country').length > 0) {
        Country = document.getElementById('Country').options[document.getElementById('Country').selectedIndex].value;
    }
    else {
        Country = document.getElementById('Country').value;
    }
    var State = '';
    if (document.getElementById('State').length > 0) {
        State = document.getElementById('State').options[document.getElementById('State').selectedIndex].value;
    }
    else {
        State = document.getElementById('State').value;
    }
    var PostalCode = document.getElementById('PostalCode');

    if (Country.length > 0) {
        if (State.length > 0) {
            if (PostalCode.value.length > 4) {
                if (Quantity.value > 0) {
                    Cookies.create('countrycookie', Country, 99);
                    Cookies.create('statecookie', State, 99);
                    Cookies.create('postalcookie', PostalCode.value, 99);
                    var url = "ajaxShipping.aspx?VariantID=" + VariantID.value + "&Quantity=" + Quantity.value + "&Country=" + escape(Country) + "&State=" + escape(State) + "&PostalCode=" + escape(PostalCode.value);
                    //alert(url);
                    makeHttpRequest(url, undefined, 'shipping');
                } else {
                    Cookies.erase('countrycookie');
                    Cookies.erase('statecookie');
                    Cookies.erase('postalcookie');
                    Error('qty');
                }
            } else {
                Cookies.erase('countrycookie');
                Cookies.erase('statecookie');
                Cookies.erase('postalcookie');
                Error('postal');
            }
        } else {
            Cookies.erase('countrycookie');
            Cookies.erase('statecookie');
            Cookies.erase('postalcookie');
            Error('state');
        }
    } else {
        Cookies.erase('countrycookie');
        Cookies.erase('statecookie');
        Cookies.erase('postalcookie');
        Error('country');
    }
}


function getPricing(ProductID, VariantID) {
    //alert('VariantID=' + VariantID);
    if (ProductID == undefined || VariantID == undefined) {
        return;
    }

    var ChosenSize = "";
    //var ChosenSizeList = document.getElementById('Size');
    var ChosenSizeList = document.getElementById('AddToCartForm_' + ProductID + '_' + VariantID).Size;
    if (ChosenSizeList != undefined) {
        ChosenSize = ChosenSizeList.options[ChosenSizeList.selectedIndex].text;
    }

    var ChosenColor = "";
    //var ChosenColorList = document.getElementById('Color');
    var ChosenColorList = document.getElementById('AddToCartForm_' + ProductID + '_' + VariantID).Color
    if (ChosenColorList != undefined) {
        ChosenColor = ChosenColorList.options[ChosenColorList.selectedIndex].text;
    }

    var url = "ajaxPricing.aspx?ProductID=" + ProductID + "&VariantID=" + VariantID + "&size=" + escape(ChosenSize) + "&color=" + escape(ChosenColor);

    //alert("Ajax Url=" + url);
    makeHttpRequest(url, undefined, 'pricing');
}

// linh start 08/12/2009
function getPostalCode() {
    var PostalCode = document.getElementById('PostalCode');

    if (PostalCode.value.length > 4) {
        Cookies.create('postalcookie', PostalCode.value, 99);
        var url = "ZipCodeLookup.aspx?dealertype=TanningBed&zip=" + escape(PostalCode.value);
        makeHttpRequest(url, undefined, 'postalcode');
    } else {
        Cookies.erase('postalcookie');
        Error('lookuppostal');
    }
}

function getSpecialPricingBeds() {
    var PostalCode = document.getElementById('PostalCode');
    if (PostalCode.value.length > 4) {
        Cookies.create('postalcookie', PostalCode.value, 99);
        var url = "ZipCodeLookup.aspx?dealertype=TanningBed&zip=" + escape(PostalCode.value);
        makeHttpRequest(url, undefined, 'postalcode');
    } else {
        Cookies.erase('postalcookie');
        Error('lookuppostal');
    }
}

function getSpecialPricingLamps() {
    var PostalCode = document.getElementById('PostalCode');
    if (PostalCode.value.length > 4) {
        Cookies.create('postalcookie', PostalCode.value, 99);
        var url = "ZipCodeLookup.aspx?dealertype=TanningLamp&zip=" + escape(PostalCode.value);
        makeHttpRequest(url, undefined, 'postalcode');
    } else {
        Cookies.erase('postalcookie');
        Error('lookuppostal');
    }
}

function getSubscription() {
    var EmailAddress = document.getElementById('txtEmailAddress');

    if (EmailAddress.value.length > 1 && EmailAddress.value != "Email Address") {
        
        if(checkEmailSyntax(EmailAddress.value)) {
            var url = "Subscribe.aspx?type=header&emailaddress=" + escape(EmailAddress.value);
            makeHttpRequest(url, undefined, 'subscription');
        }
        else{
            Error('emailaddress');
        }        
        
    } else {
        Error('subscription');
    }
}
function getSubscriptionFooter() {
    var EmailAddress = document.getElementById('SubscriptionBoxEmail');

    if (EmailAddress.value.length > 1 && EmailAddress.value != "Email Address") {

        if (checkEmailSyntax(EmailAddress.value)) {
            var url = "Subscribe.aspx?type=footer&emailaddress=" + escape(EmailAddress.value);
            makeHttpRequest(url, undefined, 'subscriptionfooter');
        }
        else {
            Error('emailaddressfooter');
        }
        
        
    } else {
        Error('subscriptionfooter');
    }
}

/* Code to force number only */
function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    
    if (charCode == 13) {
        document.getElementById('btnSubmit').onclick();
    } 

    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
   
        return false;
    } else {
        return true;
    }
}
function isNumberKeyFooter(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode

    if (charCode == 13) {
        document.getElementById('btnContinue').onclick();
    }

    if (charCode > 31 && (charCode < 48 || charCode > 57)) {

        return false;
    } else {
        return true;
    }
}

function checkEmailSyntax(str) {
    //var reg = /^([A-Za-z0-9_\-\.\+])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
    var reg = /^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,6})+$/

    return reg.test(str);
}

// linh end


function Error(type) {
    if (type == 'country') {
        document.getElementById('ShipQuote').innerHTML = "Select A Country";
    }
    if (type == 'state') {
        document.getElementById('ShipQuote').innerHTML = "Select A State";
    }
    if (type == 'postal') {
        document.getElementById('ShipQuote').innerHTML = "Enter Postal Code";
    }
    if (type == 'qty') {
        document.getElementById('ShipQuote').innerHTML = "Enter A Quantity";
    }
    if (type == 'lookuppostal') {
        document.getElementById('ShipQuote').innerHTML = "Enter A Valid Zip Code";
    }
    if (type == 'invalidpostal') {
        document.getElementById('ShipQuote').innerHTML = "The Zip Code you enter is invalid";
    }
    if (type == 'subscription') {
        document.getElementById('SubscriptionQuote').innerHTML = "Email Address required or invalid";
    }
    if (type == 'emailaddress') {
        document.getElementById('SubscriptionQuote').innerHTML = "Email Address is invalid";
    }  
    if (type == 'subscriptionfooter') {
        document.getElementById('SubscriptionQuoteFooter').innerHTML = "Email Address required or invalid";
    }
    if (type == 'emailaddressfooter') {
        document.getElementById('SubscriptionQuoteFooter').innerHTML = "Email Address is invalid";
    }  
}

var Cookies = {
    init: function() {
        var allCookies = document.cookie.split('; ');
        for (var i = 0; i < allCookies.length; i++) {
            var cookiePair = allCookies[i].split('=');
            this[cookiePair[0]] = cookiePair[1];
        }
    },
    create: function(name, value, days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
            var expires = "; expires=" + date.toGMTString();
        }
        else var expires = "";
        document.cookie = name + "=" + value + expires + "; path=/";
        this[name] = value;
    },
    erase: function(name) {
        this.create(name, '', -1);
        this[name] = undefined;
    }
};
Cookies.init();

window.onload = function readCookies() {
    if (!document.getElementById) return false;
    var countrycookie = Cookies['countrycookie'];
    var statecookie = Cookies['statecookie'];
    var postalcookie = Cookies['postalcookie'];
    if (countrycookie) {
        if (statecookie) {
            if (postalcookie) {
                if (document.getElementById('Country') != null) {
                    document.getElementById('Country').value = Cookies['countrycookie'];
                    if (document.getElementById('State') != null) {
                        document.getElementById('State').value = Cookies['statecookie'];
                        if (document.getElementById('PostalCode') != null) {
                            document.getElementById('PostalCode').value = Cookies['postalcookie'];
                            if (document.getElementById('VariantID') != null) {
                                if (document.getElementById('Quantity') != null) {
                                    getShipping();
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    // Set Focus to SearchBox
    if (document.topsearchform.SearchTerm) {
        document.topsearchform.SearchTerm.focus();
    }
}
