﻿/*--General --*/
function Clear(id) {
    var div = document.getElementById(id);
    div.innerHTML = '';
}
function handleKeyPress(e, form) {
    var evt = e ? e : window.event;
    if (evt.keyCode == 13) {
        CreateAWord();
        return false;
    } else {
        if (!isAlpha(evt)) {
            return false;
        }
    }
}
function HideDiv(divid) {
    var div = document.getElementById(divid);
    div.style.display = 'none';
}
function isAlpha(evt) {
    var keyCode = evt.which ? evt.which : evt.keyCode;
    alpha = (keyCode >= 'a'.charCodeAt() &&
    keyCode <= 'z'.charCodeAt()) ||
    (keyCode >= 'A'.charCodeAt() &&
    keyCode <= 'Z'.charCodeAt()) ||
    (keyCode >= 8 && keyCode <= 46);
    return (alpha);
}
function popup(h, w, ref) {
    var iMyWidth;
    var iMyHeight;
    iMyWidth = (window.screen.width / 2) - ((w / 2));
    iMyHeight = (window.screen.height / 2) - ((h / 2));
    //Open the window.
    var win2 = window.open(ref, "Window2", "status=no,height=" + h + ",width=" + w + ",resizable=yes,left=" + iMyWidth + ",top=" + iMyHeight + ",screenX=" + iMyWidth + ",screenY=" + iMyHeight + ",toolbar=no,menubar=no,scrollbars=no,location=no,directories=no");
    win2.focus();
}
function setFocus(e) {
    var t = document.getElementById(e);
    t.focus();
}
function ShowDiv(divid) {
    var div = document.getElementById(divid);
    div.style.display = 'block';
}
function timedMsg(id) {
    var t = setTimeout(function() { Clear(id) }, 3000)
}
function timedMsg2(id, message) {
    var t = setTimeout(function() { showMessage2(id, message) }, 1000)
}
function ToggleIconDiv(divid, imgid) {
    var div = document.getElementById(divid);
    var img = document.getElementById(imgid);
    if (div.style.display == 'block') {
        div.style.display = 'none';
        if (img) { img.src = 'images/expand.gif' }
    }
    else {
        div.style.display = 'block';
        if (img) { img.src = 'images/collapse.gif' }
    }
    alert(img.src);
}
function ToggleDiv(divid) {
    var div = document.getElementById(divid);
    if (div.style.display == 'block')
    { div.style.display = 'none'; }
    else
    { div.style.display = 'block'; }
}
/*--Shopping Basket --*/
function AddToBasket(itemID, divOfLabel, updatebasket) {
    var quantity = 1
    if (document.getElementById('txtRetailQuantity_' + itemID)) {
        quantity = document.getElementById('txtRetailQuantity_' + itemID).value;
        if (quantity) {

        } else {
            quantity = 1
        }
    }
    var datatopost = 'fn=AddToBasket&apid=' + apid + '&iid=' + itemID + '&q=' + quantity;
    var divid = 'shoppingbasketitems';

    SendDataAndChangeDivContentsNonAsync(page, datatopost, divOfLabel);

    var div = document.getElementById(divOfLabel);
    div.innerHTML = '<span style="color:green;font-weight:bold;">Item added to cart!</span>';
    timedMsg(divOfLabel);

    UpdateBaskets();

    window.location = 'basket.aspx';

}
function AddToBasketFromCreateAWord(itemID) {
    var datatopost = 'fn=AddToBasket&apid=' + apid + '&iid=' + itemID;
    SendDataNonAsync(page, datatopost);
}
function AddFrameToBasket(itemID, divOfLabel) {
    var quantity = 1;
    var msg;
    var ddl = document.getElementById('ddlFrameOpening');
    var div = document.getElementById(divOfLabel);
    var num = 0
    if (ddl) {
        if (ddl.selectedIndex == 0) {
            msg = '<span style="color:red;font-weight:bold;">Please select a frame opening.</span>';
        } else {
            num = ddl.options[ddl.selectedIndex].value;
            itemID = itemID + num
            msg = '<span style="color:green;font-weight:bold;">Item added to cart. </span>';
            var datatopost = 'fn=AddToBasket&apid=' + apid + '&iid=' + itemID + '&q=' + quantity;
            SendDataAndChangeDivContentsNonAsync(page, datatopost, divOfLabel);
            UpdateBaskets();
        }
        div.innerHTML = msg;
        timedMsg(divOfLabel);
    }
    window.location = 'basket.aspx';
}
function AddFramedWordToCart() {
    var FormEdit = document.getElementById('aspnetForm');
    //alert(FormEdit);      
    var letters;
    var lettersCount;
    var frameid;
    var addAFrameResult;
    var div = document.getElementById('addLettersFromWordResult');
    //alert(div);
    div.innerHTML = '<div style="text-align: center; "><br /><br /><img src="images/loading.gif" alt="loading" /><br /><br /><p>Loading - Please wait</p></div>'
    //1. Initialise variables
    letters = '';
    lettersCount = 0;
    //2. Loop through letters and add the ID's of letters to save
    var tag = document.getElementsByTagName('input');
    for (x = 0; x < tag.length; x++) {
        var name = tag[x].name
        var val = tag[x].value;
        if (name.indexOf('hdn_letter_') != -1) {
            letters = (letters + val + ',');
            lettersCount = lettersCount + 1;
        }
    }
    //3. ensure the letters used are formatted correctly.
    if (letters.length > 0) { letters = letters.substring(0, letters.length - 1); } //remove last commar
    else { letters = ''; } //otherwise set letters to default
    //4. Get frame
    var frameid = document.getElementById('hdn_frame').value;
    var word = document.getElementById('ctl00_ContentPlaceHolder1_hdnWord').value;
    //alert(word);
    //5. Check for errors
    var addAFrameResult = AddFramedWord(apid, letters, lettersCount, frameid, word);
    //timedMsg2('addLettersFromWordResult', '<span style="color:green;font-weight:bold;">Completed!</span>')
    //UpdateBaskets();
    window.location = 'basket.aspx';
}
function AddLettersFromWordToCart(currentpage) {
    var div = document.getElementById('addLettersFromWordResult');
    div.innerHTML = '<div style="text-align: center; "><br /><br /><img src="images/loading.gif" alt="loading" /><br /><br /><p>Loading - Please wait</p></div>'
    var tag = document.getElementsByTagName('input');
    for (x = 0; x < tag.length; x++) {
        var name = tag[x].name
        if (name.indexOf('hdn_letter_') != -1) {
            AddToBasketFromCreateAWord(tag[x].value)
        }
    }
   
    //timedMsg2('addLettersFromWordResult', '<span style="color:green;font-weight:bold;">Completed!</span>')
    //UpdateBaskets();
    window.location = 'basket.aspx';
}
function AddFramedWord(apid, letters, lettersCount, fid, word) {
    var datatopost = 'fn=AddFramedWordToCart&apid=' + apid + '&l=' + letters + '&lc=' + lettersCount + '&fid=' + fid + '&w=' + word;
    var msg = SendDataNonAsync(page, datatopost);
    return msg;
}
function CancelUpdateQuantity(itemid, currentpage) {
    UpdateBaskets();
}
function CancelUpdateShipping(currentpage) {
    UpdateBaskets();
}
function Clear(id) {
    var div = document.getElementById(id);
    div.innerHTML = '';
}
function ClearBasket(currentpage) {
    var datatopost = 'fn=ClearBasket&apid=' + apid;
    SendDataNonAsync(page, datatopost);
    UpdateBaskets();
}
function ClearTotals() {
    var t = document.getElementById("hdnTotalAmount");
    var s = document.getElementById("hdnShippingAmount");
    t.value = 0;
    s.value = 0;
}
function DisplayBasketHeader(currentpage) {
    var datatopost = 'fn=DisplayBasketHeader&apid=' + apid + '&currentpage=' + currentpage + '&isw=' + isw;
    var divid = 'headerBasketContents';
    SendDataAndChangeDivContents(page, datatopost, divid);
}
function DisplayCheckoutBasket(currentpage) {
    var datatopost = 'fn=DisplayBasketHeader&apid=' + apid + '&currentpage=' + currentpage + '&isw=' + isw;
    var divid = 'checkoutBasketContents';
    SendDataAndChangeDivContents(page, datatopost, divid);
}
function EditQuantity(itemid) {
    HideDiv('qty_' + itemid);
    HideDiv('delete_' + itemid);
    ShowDiv('qty_' + itemid + '_edit');
    ShowDiv('qty_' + itemid + '_editYesNo');
}
function GetBasketItemTotal(currentpage) {
    var datatopost = 'fn=GetBasketItemTotal&apid=' + apid + '&currentpage=' + currentpage + '&isw=' + isw;
    var divid = 'body-head-top';
    SendDataAndChangeDivContents(page, datatopost, divid);
}
function ProcessPromotionCode(currentpage) {
    var t = document.getElementById("txtPromotionCodeShoppingBasket");
    var datatopost = 'fn=RedeemPC&apid=' + apid + '&currentpage=' + currentpage + '&isw=' + isw + '&c=' + t.value;
    var divid = 'divPromotionCodeLabel';
    var response = SendDataNonAsync(page, datatopost);
    if (response != '') {
        document.getElementById(divid).innerHTML = response;
    } else {
        document.getElementById(divid).innerHTML = 'Successful!';
        UpdateBaskets();
    }
}
function RemoveFromBasket(itemID, currentpage) {
    var datatopost = 'fn=RemoveFromBasket&apid=' + apid + '&iid=' + itemID;
    SendDataNonAsync(page, datatopost);
    UpdateBaskets();
}
function ShowHideShipping(divid) {
    var div = document.getElementById(divid);
    if (div.style.display == 'block') {
        HideDiv(divid);
    } else {
        ShowDiv(divid);
    }
}
function showMessage(id, message) {
    var div = document.getElementById(id);
    div.innerHTML = message;
}
function showMessage2(id, message) {
    var div = document.getElementById(id);
    div.innerHTML = message;
}
function UpdateBaskets() {
    if (document.getElementById('body-head-top')) {
        GetBasketItemTotal('body-head-top');
    }
}
function UpdateBasketRetail(currentpage) {
    var datatopost = 'fn=UpdateBasketRetail&apid=' + apid + '&currentpage=' + currentpage + '&isw=' + isw;
    var divid = 'shoppingbasketitems';
    SendDataAndChangeDivContents(page, datatopost, divid);
}
function UpdateQuantity(itemid) {
    var q = document.getElementById('txtQuantity_' + itemid).value;
    var datatopost = 'fn=UpdateQuantity&apid=' + apid + '&iid=' + itemid + '&q=' + q;
    SendDataNonAsync(page, datatopost);
    UpdateBaskets();
}
function UpdateShipping(currentpage) {
    var q = document.getElementsByName('shippingOptions');
    var s;
    for (i = 0; i < document.getElementsByTagName('input').length; i++) {
        if (document.getElementsByTagName('input')[i].type == 'radio') {

            var ship = document.getElementsByTagName('input')[i]
            if (ship.checked == true) {
                s = ship.value;
            }
        }
    }
    var datatopost = 'fn=UpdateShipping&apid=' + apid + '&s=' + s;
    SendDataNonAsync(page, datatopost);
    UpdateBaskets();
}      
/*--Ajax functions --*/
// ### Instantiate XMLHTTP Object - cross browser (new IE / new Mozilla)
var xmlhttp
var xmlhttp = null;
xmlhttp = createXMLHttp();

function createXMLHttp() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        var aVersions = ["Microsoft.XMLHttp", "MSXML2.XMLHttp", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.5.0"];

        for (var i = 0; i < aVersions.length; i++) {
            try {
                var oXmlHttp = new ActiveXObject(aVersions[i]);

                return oXmlHttp;
            } catch (oError) {
                //Do nothing
            }
        }
    }
    throw new Error("XMLHttp object could be created.");
}

function SendDataAndChangeDivContents(page, datatopost, divid) {

    var httpreq = null;
    httpreq = createXMLHttp();
    httpreq.onreadystatechange = function() {
        if (httpreq.readyState == 1) {
            var div = document.getElementById(divid);
            div.innerHTML = 'Loading - Please wait...';
        }

        if (httpreq.readyState == 4) {
            datareturned = httpreq.responseText;
            var div = document.getElementById(divid);
            div.innerHTML = datareturned;
        }
    };

    httpreq.open("POST", page, true);
    httpreq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
    httpreq.send(datatopost);
}

function SendDataAndChangeDivContentsNonAsync(page, datatopost, divid) {
    xmlhttp.open("POST", page, false);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
    xmlhttp.send(datatopost);
    if (xmlhttp.status == 200) {
        datareturned = xmlhttp.responseText;
        var div = document.getElementById(divid);
        div.innerHTML = datareturned;
    }
}
function SendDataNonAsync(page, datatopost) {
    xmlhttp.open('POST', page, false);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    xmlhttp.send(datatopost);
    return xmlhttp.responseText;
}
function SendDataNonAsyncAndChangeDiv(page, datatopost, divid) {
    xmlhttp.open('POST', page, false);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    xmlhttp.send(datatopost);
    document.getElementById(divid).innerHTML = xmlhttp.responseText;
}

/*--Create a word --*/
function CreateAWord() {
    var word = document.getElementById('ctl00_ContentPlaceHolder1_txtWord').value;
    document.getElementById('ctl00_ContentPlaceHolder1_hdnWord').value = word;
    var datatopost = 'fn=CreateAWord&apid=' + apid + '&word=' + word + '&frameid=1';
    var divid = 'searchResults';
    SendDataAndChangeDivContents(page, datatopost, divid);
    HideDiv('FilterLetters');
    HideDiv('AddAFrame');
    ShowDiv('searchResults');
}
function CreateAWordFromSBFID(sbf_apid, sbf_sbfid, frameid) {
    var datatopost = 'fn=CreateAWord&apid=' + sbf_apid + '&sbfid=' + sbf_sbfid + '&frameid=' + frameid;
    var divid = 'searchResults';
    SendDataAndChangeDivContents(page, datatopost, divid);
    HideDiv('FilterLetters');
    HideDiv('AddAFrame');
    ShowDiv('searchResults');
}
function ReCreateAWord(frameid) {
    var tag = document.getElementsByTagName('input');
    var letters = '';
    for (x = 0; x < tag.length; x++) {
        var name = tag[x].name
        if (name.indexOf('hdn_letter_') != -1) {
            letters = letters + tag[x].value + '|';
        }
    }
    var datatopost = 'fn=CreateAWord&apid=' + apid + '&letters=' + letters + '&frameid=' + frameid;
    var divid = 'searchResults';
    SendDataAndChangeDivContents(page, datatopost, divid);
    HideDiv('FilterLetters');
    HideDiv('AddAFrame');
    ShowDiv('searchResults');
}
function CreateWordFromSFID(word_apid, sfid, frameid) {
    var datatopost = 'fn=CreateAWord&word_apid=' + word_apid + '&sfid=' + sfid + '&frameid=' + frameid;
    var divid = 'searchResults';
    SendDataAndChangeDivContents(page, datatopost, divid);
    HideDiv('FilterLetters');
    ShowDiv('searchResults');
}
function ShowLetters(letter, div, h, w, s, hid) {
    var datatopost = 'fn=GetLettersForCreateAWord&apid=' + apid + '&letter=' + letter + '&h=' + h + '&w=' + w + '&div=' + div + '&s=' + s + '&hid=' + hid;
    var divid = 'FilterLetters';
    SendDataAndChangeDivContentsNonAsync(page, datatopost, divid);
    HideDiv('searchResults');
    ShowDiv('FilterLetters');
}
function CloseFilterLetter() {
    HideDiv('FilterLetters');
    ShowDiv('searchResults');
}
function ChangeALetter(letter, item_id, newimage, divtochange, h, w, s, hid) {
    var ahref = '<a href="javascript:ShowLetters(\'' + letter + '\', \'' + divtochange + '\',' + h + ',' + w + ',' + s + ',\'' + hid + '\')">'
    var hid = document.getElementById(hid);
    hid.value = item_id
    var div = document.getElementById(divtochange);
    div.innerHTML = ahref + '<img style="width:' + w + 'px;height:' + h + 'px; margin-right:' + s + 'px;" src="images/medium/' + newimage + '" class="imgCreateAWord" /></a>'
    HideDiv('FilterLetters');
    ShowDiv('searchResults');
}
function AddAFrame(num) {
    var datatopost = 'fn=AddAFrame&apid=' + apid + '&n=' + num
    var divid = 'AddAFrame';
    SendDataAndChangeDivContentsNonAsync(page, datatopost, divid);
    HideDiv('searchResults');
    ShowDiv('AddAFrame');
    if (framing) {
        framing = true;
    }
}
function CloseAddAFrame() {
    HideDiv('AddAFrame');
    ShowDiv('searchResults');
}
function RemoveFrame() {
    ReCreateAWord(0)
    if (framing) {
        framing = false;
    }
}
function OpenSendToAFriendDiv() {
    ToggleDiv('sendToAFriendForm');
    var divValMsg = document.getElementById('sendToAFriendValidationMessage');
    divValMsg.innerHTML = ''
}
function SendWordToAFriend() {
    var FormEdit = document.getElementById('aspnetForm');
    var divLoadingMsg = document.getElementById('sendToAFriendLoadingMessage');
    var divValMsg = document.getElementById('sendToAFriendValidationMessage');
    var divForm = document.getElementById('sendToAFriendForm');
    var letters;
    var lettersCount;
    var sendToAFriendResult;
    var frameid;

    //Initialise variables
    letters = '';
    lettersCount = 0;
    //1. Show/Hide screens
    ShowDiv('sendToAFriendLoadingMessage');
    HideDiv('sendToAFriendForm');
    //2. Loop through letters and add the ID's of letters to save
    var tag = document.getElementsByTagName('input');
    for (x = 0; x < tag.length; x++) {
        var name = tag[x].name
        var val = tag[x].value;
        if (name.indexOf('hdn_letter_') != -1) {
            letters = (letters + val + ',');
            lettersCount = lettersCount + 1;
        }
    }

    //3. ensure the letters used are formatted correctly.
    if (letters.length > 0) {
        letters = letters.substring(0, letters.length - 1); //remove last commar
    }
    else {
        letters = ''; //otherwise set letters to default
    }
    //4A. Validate credentials
    var txtYourName = document.getElementById('txtYourName');
    var txtYourEmail = document.getElementById('txtYourEmail');
    var txtFriendsName = document.getElementById('txtFriendsName');
    var txtFriendsEmail = document.getElementById('txtFriendsEmail');

    //4B. Frame
    if (document.getElementById('hdn_frame')) {
        frameid = document.getElementById('hdn_frame').value;
    } else {
        frameid = 0;
    }
    //5. Check for errors
    var sendToFriendResult = SendToFriend(apid, letters, lettersCount, txtYourName.value, txtYourEmail.value, txtFriendsName.value, txtFriendsEmail.value, frameid)
    if (sendToFriendResult == 'SUCCESS') {
        divValMsg.innerHTML = '<span style="color:green;font-weight:bold;">Your message to ' + txtFriendsName.value + ' was successfully sent!</span>'
        // 6. Clear form
        txtYourName.value = ''
        txtYourEmail.value = ''
        txtFriendsName.value = ''
        txtFriendsEmail.value = ''
    } else {
        divValMsg.innerHTML = '<span style="color:red;font-weight:bold;">' + sendToFriendResult + '</span>'
    }
    //7. Show/Hide screens
    ShowDiv('sendToAFriendValidationMessage');
    ShowDiv('sendToAFriendForm');
    HideDiv('sendToAFriendLoadingMessage');
}
function SendToFriend(apid, letters, lettersCount, yn, ye, frn, fre, fid) {
    var datatopost = 'fn=SendToAFriend&apid=' + apid + '&l=' + letters + '&yn=' + yn + '&ye=' + ye + '&frn=' + frn + '&fre=' + fre + '&lc=' + lettersCount + '&fid=' + fid;
    var msg = SendDataNonAsync(page, datatopost);
    return msg;
}
/*--Default Button --*/
function clickDefaultButton(e, buttonid) {
    var evt = e ? e : window.event;
    var btn = document.getElementById(buttonid);
    if (btn) {
        if (evt.keyCode == 13) {
            btn.click();
            return false;
        }
    }
}