﻿function doLogin()
{
    url = "/newsite/checkout/checkout.asp";
    req = newXHR();
    req.open("GET", url, true);
    req.onreadystatechange = function(){refreshCheckout()};
    req.send(null);
}

function refreshCheckout() 
{
    var errMsg = "";
    if (req.readyState == 4) { // Complete
        if (req.status == 200) { // OK response
            if (document.getElementById('div_basketcontainer'))
            {
                document.getElementById("div_basketcontainer").innerHTML = req.responseText;
            }
        }
        else if (req.status == 404)
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'sessiontab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>404 page not found.</strong><br /><br />" + errMsg;
            return false;
        }
        else
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.location.href=\'/newsite/\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>We're sorry, but your session has expired.</strong><br /><br />" + errMsg;
            return false;
        }      
    }
}


function attemptLogin()
{
    
    var xEmail = document.getElementById('coemail').value;
    var xPass = document.getElementById('copassword').value;
    var params = "func=processlogin&xEmail=" + xEmail + "&xPass=" + xPass;
    
    url = "/newsite/checkout/account_process.asp";
    req = newXHR();
    req.open("POST", url, true);
    //Send the proper header information along with the request
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.setRequestHeader("Content-length", params.length);
    req.setRequestHeader("Connection", "close");

    req.onreadystatechange = function(){loginResult()};
    req.send(params);
}

function loginResult() 
{
    var errMsg = "";
    if (req.readyState == 4) { // Complete
        if (req.status == 200) { // OK response
            if (document.getElementById('div_basketcontainer'))
            {
                document.getElementById("div_basketcontainer").innerHTML = req.responseText;
            }
        }
        else if (req.status == 301)
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.location.href=\'/newsite/\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>We're sorry, but your session has expired.</strong><br /><br />" + errMsg;
            return false;    
        }
        else
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'sessiontab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>No login found.</strong><br /><br />" + errMsg;
            return false;
        }      
    }
}

function doCreate()
{
    
    var xEmail = document.getElementById('acemail').value;
    var xPass = document.getElementById('acpass').value;
    var params = "func=accountform&xEmail=" + xEmail + "&xPass=" + xPass;
    
    url = "/newsite/checkout/account_form.asp";
    req = newXHR();
    req.open("POST", url, true);
    //Send the proper header information along with the request
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.setRequestHeader("Content-length", params.length);
    req.setRequestHeader("Connection", "close");

    req.onreadystatechange = function(){createResult()};
    req.send(params);
}

function createResult() 
{
    var errMsg = "";
    if (req.readyState == 4) { // Complete
        if (req.status == 200) { // OK response
            if (document.getElementById('div_basketcontainer'))
            {
                document.getElementById("div_basketcontainer").innerHTML = req.responseText;
            }
        }
        else if (req.status == 301)
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.location.href=\'/newsite/\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>We're sorry, but your session has expired.</strong><br /><br />" + errMsg;
            return false;    
        }
        else if (req.status == 202)
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'sessiontab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>You already have an account. Please login with your existing details.</strong><br /><br />" + errMsg;
            return false;    
        }
        else
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'sessiontab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>Cannot create account.</strong><br /><br />" + errMsg;
            return false;
        }      
    }
}


function createAccount()
{
    
    var firstname = document.getElementById('firstname');
    var lastname = document.getElementById('lastname');
    var address1 = document.getElementById('address1');
    var address2 = document.getElementById('address2');
    var town = document.getElementById('town');
    var county = document.getElementById('county');
    var postcode = document.getElementById('postcode');
    var email = document.getElementById('email');
    var password = document.getElementById('password');
    var confpass = document.getElementById('confpass');
    var errBool = false;
    var errmsg = "";
    
    if (firstname.value == "")
    {
        firstname.style.backgroundColor = '#FD8402';
        firstname.style.borderColor = '#000000';
        firstname.style.color = '#000000';
        errBool = true;
    }
    else
    {
        firstname.style.backgroundColor = '#8F7C4C';
        firstname.style.borderColor = '#8F7C4C';
        firstname.style.color = '#000000';
    }
    if (lastname.value == "")
    {
        lastname.style.backgroundColor = '#FD8402';
        lastname.style.borderColor = '#000000';
        lastname.style.color = '#000000';
        errBool = true;
    }
    else
    {
        lastname.style.backgroundColor = '#8F7C4C';
        lastname.style.borderColor = '#8F7C4C';
        lastname.style.color = '#000000';
    }
    if (address1.value == "")
    {
        address1.style.backgroundColor = '#FD8402';
        address1.style.borderColor = '#000000';
        address1.style.color = '#000000';
        errBool = true;
    }
    else
    {
        address1.style.backgroundColor = '#8F7C4C';
        address1.style.borderColor = '#8F7C4C';
        address1.style.color = '#000000';
    }
    if (town.value == "")
    {
        town.style.backgroundColor = '#FD8402';
        town.style.borderColor = '#000000';
        town.style.color = '#000000';
        errBool = true;
    }
    else
    {
        town.style.backgroundColor = '#8F7C4C';
        town.style.borderColor = '#8F7C4C';
        town.style.color = '#000000';
    }
    if (county.value == "")
    {
        county.style.backgroundColor = '#FD8402';
        county.style.borderColor = '#000000';
        county.style.color = '#000000';
        errBool = true;
    }
    else
    {
        county.style.backgroundColor = '#8F7C4C';
        county.style.borderColor = '#8F7C4C';
        county.style.color = '#000000';
    }
    if (postcode.value == "")
    {
        postcode.style.backgroundColor = '#FD8402';
        postcode.style.borderColor = '#000000';
        postcode.style.color = '#000000';
        errBool = true;
    }
    else
    {
        postcode.style.backgroundColor = '#8F7C4C';
        postcode.style.borderColor = '#8F7C4C';
        postcode.style.color = '#000000';
    }
    if (email.value == "")
    {
        email.style.backgroundColor = '#FD8402';
        email.style.borderColor = '#000000';
        email.style.color = '#000000';
        errBool = true;
    }
    else
    {
        email.style.backgroundColor = '#8F7C4C';
        email.style.borderColor = '#8F7C4C';
        email.style.color = '#000000';
    }
    if (password.value == "")
    {
        password.style.backgroundColor = '#FD8402';
        password.style.borderColor = '#000000';
        password.style.color = '#000000';
        errBool = true;
    }
    else
    {
        password.style.backgroundColor = '#8F7C4C';
        password.style.borderColor = '#8F7C4C';
        password.style.color = '#000000';
    }
    if (confpass.value != password.value)
    {
        password.style.backgroundColor = '#FD8402';
        password.style.borderColor = '#000000';
        password.style.color = '#000000';
        confpass.style.backgroundColor = '#FD8402';
        confpass.style.borderColor = '#000000';
        confpass.style.color = '#000000';
        errBool = true;
    }
    else
    {
        password.style.backgroundColor = '#8F7C4C';
        password.style.borderColor = '#8F7C4C';
        password.style.color = '#000000';
        confpass.style.backgroundColor = '#8F7C4C';
        confpass.style.borderColor = '#8F7C4C';
        confpass.style.color = '#000000';
    }
    if (errBool == true)
    {
        errmsg += 'Some errors need looking at.<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'errortab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
        document.getElementById('errortab').style.display = 'block';
        document.getElementById('errortab').innerHTML = errmsg;
        return false;
    }
    
    
    var params = "func=createaccount";
    params += "&firstname=" + encodeURIComponent(firstname.value);
    params += "&lastname=" + encodeURIComponent(lastname.value);
    params += "&address1=" + encodeURIComponent(address1.value);
    params += "&address2=" + encodeURIComponent(address2.value);
    params += "&town=" + encodeURIComponent(town.value);
    params += "&county=" + encodeURIComponent(county.value);
    params += "&postcode=" + encodeURIComponent(postcode.value);
    params += "&email=" + encodeURIComponent(email.value);
    params += "&password=" + encodeURIComponent(password.value);
    
    
    url = "/newsite/checkout/account_process.asp";
    req = newXHR();
    req.open("POST", url, true);
    //Send the proper header information along with the request
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.setRequestHeader("Content-length", params.length);
    req.setRequestHeader("Connection", "close");

    req.onreadystatechange = function(){createResult()};
    req.send(params);
}

function addAddress()
{
    //get all address details, submit to account_process, add the address, display new option.
    var custid = document.getElementById('custid').value;
    var delname = document.getElementById('delname').value;
    var deladd1 = document.getElementById('deladd1').value;
    var deladd2 = document.getElementById('deladd2').value;
    var deltown = document.getElementById('deltown').value;
    var delcounty = document.getElementById('delcounty').value;
    var delpostcode = document.getElementById('delpostcode').value;
    var deltel = document.getElementById('deltel').value;
    
    var params = "func=addaddress";
    params += "&custid=" + encodeURIComponent(custid);
    params += "&delname=" + encodeURIComponent(delname);
    params += "&deladd1=" + encodeURIComponent(deladd1);
    params += "&deladd2=" + encodeURIComponent(deladd2);
    params += "&deltown=" + encodeURIComponent(deltown);
    params += "&delcounty=" + encodeURIComponent(delcounty);
    params += "&delpostcode=" + encodeURIComponent(delpostcode);
    params += "&deltel=" + encodeURIComponent(deltel);
    
    
    url = "/newsite/checkout/account_process.asp";
    req = newXHR();
    req.open("POST", url, true);
    //Send the proper header information along with the request
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.setRequestHeader("Content-length", params.length);
    req.setRequestHeader("Connection", "close");

    req.onreadystatechange = function(){addressResult()};
    req.send(params);
}

function addressResult() 
{
    var errMsg = "";
    if (req.readyState == 4) { // Complete
        if (req.status == 200) { // OK response
            if (document.getElementById('div_basketcontainer'))
            {
                document.getElementById("div_basketcontainer").innerHTML = req.responseText;
            }
        }
        else if (req.status == 301)
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.location.href=\'/newsite/\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>We're sorry, but your session has expired.</strong><br /><br />" + errMsg;
            return false;    
        }
        else if (req.status == 202)
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'sessiontab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>Select an address first.</strong><br /><br />" + errMsg;
            return false;    
        }
        else if (req.status == 204)
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'sessiontab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>That's not a valid address.</strong><br /><br />" + errMsg;
            return false;    
        }
        else
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'sessiontab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>Oops. Something went wrong.</strong><br /><br />" + errMsg;
            return false;
        }      
    }
}

function processAddress()
{
    //get all address details, submit to account_process, add the address, display new option.
    var addressid = document.getElementById('deladdress').value;
    
    var params = "func=adddeladdress";
    params += "&addressid=" + encodeURIComponent(addressid);    
    
    url = "/newsite/checkout/address_process.asp";
    req = newXHR();
    req.open("POST", url, true);
    //Send the proper header information along with the request
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.setRequestHeader("Content-length", params.length);
    req.setRequestHeader("Connection", "close");

    req.onreadystatechange = function(){addressResult()};
    req.send(params);
}

function addBillingAddress()
{
    //get all address details, submit to account_process, add the address, display new option.
    var custid = document.getElementById('custid').value;
    var billdelname = document.getElementById('billdelname').value;
    var billdeladd1 = document.getElementById('billdeladd1').value;
    var billdeladd2 = document.getElementById('billdeladd2').value;
    var billdeltown = document.getElementById('billdeltown').value;
    var billdelcounty = document.getElementById('billdelcounty').value;
    var billdelpostcode = document.getElementById('billdelpostcode').value;
    var billdeltel = document.getElementById('billdeltel').value;
    
    var params = "func=addbilladdress";
    params += "&custid=" + encodeURIComponent(custid);
    params += "&billdelname=" + encodeURIComponent(billdelname);
    params += "&billdeladd1=" + encodeURIComponent(billdeladd1);
    params += "&billdeladd2=" + encodeURIComponent(billdeladd2);
    params += "&billdeltown=" + encodeURIComponent(billdeltown);
    params += "&billdelcounty=" + encodeURIComponent(billdelcounty);
    params += "&billdelpostcode=" + encodeURIComponent(billdelpostcode);
    params += "&billdeltel=" + encodeURIComponent(billdeltel);
    
    
    url = "/newsite/checkout/address_process.asp";
    req = newXHR();
    req.open("POST", url, true);
    //Send the proper header information along with the request
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.setRequestHeader("Content-length", params.length);
    req.setRequestHeader("Connection", "close");

    req.onreadystatechange = function(){billingaddressResult()};
    req.send(params);
}

function billingaddressResult() 
{
    var errMsg = "";
    if (req.readyState == 4) { // Complete
        if (req.status == 200) { // OK response
            if (document.getElementById('div_basketcontainer'))
            {
                document.getElementById("div_basketcontainer").innerHTML = req.responseText;
            }
        }
        else if (req.status == 301)
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.location.href=\'/newsite/\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>We're sorry, but your session has expired.</strong><br /><br />" + errMsg;
            return false;    
        }
        else if (req.status == 202)
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'sessiontab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>Select an address first.</strong><br /><br />" + errMsg;
            return false;    
        }
        else if (req.status == 204)
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'sessiontab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>That's not a valid address.</strong><br /><br />" + errMsg;
            return false;    
        }
        else
        {
            errMsg += '<br /><br /><br /><img style="cursor: pointer;" onclick="document.getElementById(\'sessiontab\').style.display = \'none\';" onmouseover="this.src=\'/newsite/images/buttons/btn_ok_on.gif\';" onmouseout="this.src=\'/newsite/images/buttons/btn_ok_off.gif\';" src="/newsite/images/buttons/btn_ok_off.gif" alt="close window" />';
            document.getElementById('sessiontab').style.display = 'block';
            document.getElementById('sessiontab').innerHTML = "<strong>Oops. Something went wrong.</strong><br /><br />" + errMsg;
            return false;
        }      
    }
}

function processBillingAddress()
{
    //get all address details, submit to account_process, add the address, display new option.
    var addressid = document.getElementById('billaddress').value;
    
    var params = "func=addbilladdress";
    params += "&addressid=" + encodeURIComponent(addressid);    
    
    url = "/newsite/checkout/billaddress_process.asp";
    req = newXHR();
    req.open("POST", url, true);
    //Send the proper header information along with the request
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.setRequestHeader("Content-length", params.length);
    req.setRequestHeader("Connection", "close");

    req.onreadystatechange = function(){billingaddressResult()};
    req.send(params);
}


//collection of functions to enable tracing 
//a path back through the checkout

function returnPage(referer)
{
    
    //basically just launch an ajax call to process a previous page
    //I.E address_process will return to account_process
    
    //alert(referer);
    
    
    if (referer == '/newsite/checkout/account_process.asp')
    {
        url = "/newsite/checkout/checkout.asp";    
    }
    
    if (referer == '/newsite/checkout/address_process.asp')
    {
        url = "/newsite/checkout/account_process.asp";    
    }
    
    if (referer == '/newsite/checkout/account_form.asp')
    {
        url = "/newsite/checkout/checkout.asp";    
    }
    
    if (referer == '/newsite/checkout/billaddress_process.asp')
    {
        url = "/newsite/checkout/address_process.asp";    
    }
    
    req = newXHR();
    req.open("GET", url, true);
    req.onreadystatechange = function(){refreshCheckout()};
    req.send(null);
}

function editPage(url)
{
    
    //basically just launch an ajax call to process a specified page
   
    req = newXHR();
    req.open("GET", url, true);
    req.onreadystatechange = function(){refreshCheckout()};
    req.send(null);
}

function submitenter(type,myfield,e)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13)
       {
       if (type == 'log')
       {
        attemptLogin();
       }
       else if (type == 'create')
       {
        doCreate();
       }
       return false;
       }
    else
       return true;
}
