﻿/// <reference path="jquery-1.4.1-vsdoc.js"/>




function createCookie(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=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}




//cart array
var arrCart = [];
var arrWishList = [];
var log = ""
var ukShipping = true;
var code = "sfgadfgsdfgsdfgs";
var applyCode = false;

// load array
function loadarray(cartName) {
    if (readCookie(cartName)) {
        log += 'cookie found ' + cartName + '<br / >'

        arrCart = stringToArray(readCookie(cartName));

    }
    else {
        log += 'NO cookie found ' + cartName + '<br / >'
        arrCart = [];


    }
}


// add to cart
function addToWishList(prodId, prodCode, prodName, price, qty, cartName) {

    //alert(cartName);
    //prodName = prodName.replace(/,/g, '');

    loadarray(cartName);
    log += 'laod array ' + cartName + '<br / >'

    var bolFound = false;
    //read array, if product id not in the add
    for (var i = 0; i < arrCart.length; i++) {
        if (arrCart[i][0] == prodId) {
            bolFound = true;
        }
    }
    if (bolFound == false) {
        arrCart[arrCart.length] = [prodId, prodCode, prodName, qty, price];
        //add array
        createCookie(cartName, arrayToString(arrCart), 10);
    }
    else {

        setQty(prodId, qty, cartName);
        createCookie(cartName, arrayToString(arrCart), 10);


    }

    //alert(arrayToString(arrCart));

    // bindCart(cartName)

    //alert(log);

    bindCart(cartName);



//    //show hide basket
//    if (cartName == 'cart') {


//        $('#basketexpand').slideDown('fast', function () { });
//        var timDelay = setTimeout(function () {
//            $('#basketexpand').slideUp('fast', function () { });

//        }, 2000);


//    }
//    else {


//        $('#wishexpand').slideDown('fast', function () { });
//        var timDelay = setTimeout(function () {
//            $('#wishexpand').slideUp('fast', function () { });

//        }, 2000);



//    }
    //
}



function arrayToString(myArray) {
    var str = ''
    // loop through outer array. Items in cart
    for (var i = 0; i < myArray.length; i++) {
        innerArray = myArray[i]
        // loop through inner array.  0: ProdID, 1:code, 2: name 3: qty
        for (var i2 = 0; i2 < innerArray.length; i2++) {

            str += innerArray[i2] + '^';
        }
        str = str.substring(0, str.length - 1)
        str += '~'
    }
    str = str.substring(0, str.length - 1)

    return str;
}


function stringToArray(str) {

    log += 'cookie string ' + str + '<br / >'

    var arr = str.split('~');

    for (var i = 0; i < arr.length; i++) {

        arr[i] = arr[i].split('^');
    }

    return arr;
}


//remove from cart
function removeFromCart(prodID, cartName) {
    loadarray(cartName);
    for (var i = 0; i < arrCart.length; i++) {
        if (arrCart[i][0] == prodID) {
            arrCart.splice(i, 1);
            createCookie(cartName, arrayToString(arrCart), 10);
        }
    }

    //  bindCart(cartName)
    bindCart(cartName)
}


function setQty(prodId, qty, cartName) {

    //  loadarray(cartName);
    for (var i = 0; i < arrCart.length; i++) {
        if (arrCart[i][0] == prodId) {
            var qty = parseInt(arrCart[i][3]) + parseInt(qty);

            if (qty > 0) {

                arrCart[i][3] = qty;
                //                createCookie(cartName, arrayToString(arrCart), 10);
                                // bindCart(cartName);
                //                laodAjaxCart(cartName)
            }
            else {
                removeFromCart(prodId, cartName);
            }
        }
    }
}

//
function changeQty(prodId, direction, cartName) {

    loadarray(cartName);
    for (var i = 0; i < arrCart.length; i++) {
        if (arrCart[i][0] == prodId) {
            var qty = arrCart[i][3];
            if (direction == 'up') {
                qty = parseInt(qty) + 1;
            }
            else {
                qty = parseInt(qty) - 1;
            }
            if (qty > 0) {

                arrCart[i][3] = qty;
                createCookie(cartName, arrayToString(arrCart), 10);
                // bindCart(cartName);
                bindCart(cartName)
            }
            else {
                removeFromCart(prodId, cartName);
            }
        }
    }
}


function getTotals(cartName){

    loadarray(cartName);


    
    var discounts = 0;
    var carridge = 0;
    var cardCount = 0;
    var printCount = 0;
    var total = 0;
    var message = ''

    //loop through cart
        for (var i = 0; i < arrCart.length; i++) {

              total += (arrCart[i][4] * arrCart[i][3]) ;

            //count prints
            if ( (arrCart[i][1]).search('PRI') >= 0 ) {
                printCount += parseInt(arrCart[i][3]);
            }

            //count cards
           if ( (arrCart[i][1]).search('CAR') >= 0 ) {
               cardCount += parseInt(arrCart[i][3]);
            }

        //end llop
        }

       //set print discounts
           if (printCount == 1) {
               message += '<li>Buy 2 prints and get £25 off</li>';
           }

            if (printCount == 2){
                discounts += -25;
                message += '<li>Buy more than 2 prints and get £50 off</li>';
            }


            if (printCount > 2){
                discounts+= -50;
            }

            //set card discounts
            if (cardCount < 6 && cardCount > 0) {
                message += '<li>Buy more than 5 cards and get 50p off each card</li>';

            }

            if (cardCount >= 6 && cardCount <= 11){
                discounts += -(cardCount * 0.50);
                message += '<li>Buy more than 11 cards and get £1.00 off each card</li>';
            }

            if (cardCount >= 12){
                discounts+=  -(cardCount * 1);
            }


            //set card shippng
           if (cardCount > 0  && cardCount <= 11){
                carridge +=  2;
            }

           if (cardCount >= 12){
                carridge +=  3;
           }

           if (printCount > 0) {
                if (ukShipping) {
                    carridge += 9;
                }
                else{
                    carridge += 15;
                }
            }

            //set dicount
            if (applyCode) {

                
                var subToatal = total + carridge;
                var codeDiscount = (subToatal / 100) * 10;
                discounts += -codeDiscount;
               // alert(discounts);
            }

           total += discounts;
           total += carridge;

           if (message != ''){
               message = '<ul>' + message + '</ul>';
           }

           return  { 'discounts' : discounts, 'carridge' : carridge, 'total' : total , 'message' : message };

}


//binmd cart
function bindCart(cartName) {


    //load shipping
    if (readCookie('shipping')) {

        if (readCookie('shipping') == 'false') {
            ukShipping = false;
        }
        else{
            ukShipping = true;
            }

    }

    //load discount
    if (readCookie('code')) {

        if (readCookie('code') == code) {
            applyCode = true;
        }
        else {
            applyCode = false;
        }

    }




    loadarray(cartName);
    var wishlist = ""
    var totals = getTotals(cartName);

    var total = 0
        
    wishlist += '<div id="cartBox">'
    wishlist += '<div class="title">Your Cart</div>'

    if (totals.message != '') {

        wishlist += totals.message;

    }


    wishlist += '<table width="100%" border="0" cellspacing="7" cellpadding="0">'

    for (var i = 0; i < arrCart.length; i++) {

       //   arrCart[arrCart.length] = [prodId, prodCode, prodName, qty, price];

 


        wishlist += '<tr>'
        wishlist += '<td class="qty">' + arrCart[i][3] + '</td>'
        wishlist += '<td class="times">x</td>'
        wishlist += '<td class="prodtitle">' + arrCart[i][2] + '</td>'
        wishlist += '<td class="price">&pound;' + parseFloat((parseInt(arrCart[i][3]) * arrCart[i][4])).toFixed(2) + '</td>' + ''
        wishlist += '<td class="options"><a href="javascript:changeQty(\'' + arrCart[i][0] + '\',\'up\',\'' + cartName + '\')">(+)</a> <a href="javascript:changeQty(\'' + arrCart[i][0] + '\',\'down\',\'' + cartName + '\')">(-)</a> <a  href="javascript:removeFromCart(\'' + arrCart[i][0] + '\',\'' + cartName + '\')">remove</a></td>'
        wishlist += '</tr>';
        
    }


    wishlist += '<tr>'
    wishlist += '<td>&nbsp;</td>'
    wishlist += '<td>&nbsp;</td>'
    wishlist += '<td class="totaltitle">Carriage:</td>'
    wishlist += '<td class="price">&pound;' + totals.carridge.toFixed(2) + '</td>'
    wishlist += '<td>&nbsp;</td>'
    wishlist += '</tr>'
    wishlist += '<tr>'
    wishlist += '<td>&nbsp;</td>'
    wishlist += '<td>&nbsp;</td>'
    wishlist += '<td class="totaltitle">Discounts:</td>'
    wishlist += '<td class="price">&pound;' + totals.discounts.toFixed(2) + '</td>'
    wishlist += '<td>&nbsp;</td>'
    wishlist += '</tr>'
    wishlist += '<tr>'
    wishlist += '<td>&nbsp;</td>'
    wishlist += '<td>&nbsp;</td>'
    wishlist += '<td class="totaltitle">Total:</td>'
    wishlist += '<td class="price">&pound;' + totals.total.toFixed(2) + '</td>'
    wishlist += '<td>&nbsp;</td>'
    wishlist += '</tr>'
    wishlist += '</table>'


    wishlist += '<form action="https://www.paypal.com/cgi-bin/webscr" method="post">'
    wishlist += '<input type="hidden" name="cmd" value="_cart">'
    wishlist += '<input type="hidden" name="upload" value="1">'
    wishlist += ' <input type="hidden" name="business" value="layzellart@hotmail.com">'

    for (var i = 0; i < arrCart.length; i++) {
        


        wishlist += ' <input type="hidden" name="item_name_' + (i +1) + '"  value="' + arrCart[i][2] + '">';
        wishlist += '<input type="hidden" name="item_number_' + (i + 1) + '"  value="' + arrCart[i][1] + '">';
        wishlist += ' <input type="hidden" name="amount_' + (i + 1) + '"  value="' + arrCart[i][4] + '">';
        wishlist += '<input type="hidden" name="quantity_' + (i + 1) + '" value="' + parseInt(arrCart[i][3]) + '">';


    }


    wishlist += '<input type="hidden" name="discount_amount_cart" value="' + Math.abs(totals.discounts.toFixed(2)) + '">'
    wishlist += '<input type="hidden" name="handling_cart" id="shipping" value="' + totals.carridge.toFixed(2) + '">'

    wishlist += ' <input type="hidden" name="currency_code" value="GBP">'
    wishlist += ' <input type="hidden" name="lc" value="GB">'
    if (ukShipping == true) {
        wishlist += '<div><strong>Deliver to:</strong> <input type="radio" name="rd" id="radio2" value="uk" checked="checked" />UK Mainland  <input type="radio" name="rd" id="radio" value="INT" />International</div>'
    }
    else {
        wishlist += '<div><strong>Deliver to:</strong> <input type="radio" name="rd" id="radio2" value="uk"  />UK Mainland  <input type="radio" name="rd" id="radio" value="INT" checked="checked" />International</div>'
    }
    wishlist += '<p>Voucher Code: <input type="text" id="code" /> <a id="applyCode" href="javascript:">Apply</a></p>'
    wishlist += '<br /><div align="center"><input type="image" src="/images/buy.png"'
    wishlist += '   border="0" name="submit" alt="Make your payments with PayPal. It is free, secure, effective."><br /><br />N.B. A PayPal account is not required. PayPal payment page will accept all major credit and debit cards.<br /><br /><img src="/images/cards.png" border="0" alt=""></div>'
    wishlist += '<img alt="" border="0" src="https://www.paypal.com/it_IT/i/scr/pixel.gif" width="1"'
    wishlist += 'height="1">'
    wishlist += '</form>'

     wishlist += ''
    wishlist += '</div>';





    if (!$('#cartWrap').length) {

        $('.wrapper').prepend('<div id="cartWrap"></div');


       }

    $('#cartWrap').html(wishlist);

    if (arrCart.length == 0) {

        $('#cartWrap').remove();

       
    }

    if (applyCode == true) {
        $('#code').val(code) ;
    }

    $('#applyCode').click(function () {

        if ($('#code').val() != '' && $('#code').val().toLowerCase() == code) {

            //alert('test');

            applyCode = true;
            createCookie('code', 'xmas2011', 1);
            bindCart('timcart');


        }
        else {
            applyCode = false;
            eraseCookie('code');
            bindCart('timcart');
        }

    });


    //bind the shipping
    if (arrCart.length != 0) {

        $("input[name='rd']").change(function () {

            // alert('test');

            if ($("input[name='rd']:checked").val() == 'INT') {
                ukShipping = false;
                createCookie('shipping', false, 100);
            }
            else {
                ukShipping = true;
                createCookie('shipping', true, 100);

            }
            bindCart('timcart');

        });

    }

    if ($('#cartWrap').length) {
        //position wrappers
        var offset = $('#cartBox').offset();
        var width = $('#cartBox').width();
        if ((offset.left + width) > $(window).width()) {


//            $('#cartWrap').css({ 'margin-left': '0px' });
//            $('#cartBox').css({ 'margin-left': ($('.wrapper').width() + 15) + 'px', 'left': '' })
//            $('.wrapper').css({ 'margin-left': '0px', 'width': ($('#cartBox').width() + $('#cartWrap').width()) + 'px' });

//                        $('#cartWrap').css({ 'margin-left': '0px' });
//                        $('#cartBox').css({ 'margin-left': ($('.wrapper').width() + 15) + 'px', 'left': '' })
                        $('.wrapper').css({ 'width': ($('#cartBox').width() + $('#cartWrap').width()) + 'px' });
                       // $('#cartBox').css({ 'margin-left': '840px', 'position': 'absolute' })


        }

        offset = $('#cartBox').offset();
        if ((offset.left + width) > $(window).width()) {

            $('#cartBox').css({ 'position': 'absolute' })


        }


    }

//    document.getElementById(cartName + 'items').innerHTML = wishlist;
//    //document.getElementById(cartName+'wishtotal').innerHTML = total.toFixed(2);
}

$(document).ready(function () {
    if (readCookie('timcart')) {

        bindCart('timcart');

    }

});
//function laodAjaxCart(cartName) {



//    //    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
//    //        xmlhttp = new XMLHttpRequest();
//    //    }
//    //    else {// code for IE6, IE5
//    //        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
//    //    }



//    var date = new Date();

//    $.get('/ajax/minicart.aspx?cartname=' + cartName + '&date=' + date.getTime(), function (data) {



//        var cartlist = '#' + cartName + 'items'
//        // alert(cartlist);
//        $(cartlist).html(data);

//    });



    //    xmlhttp.open("GET", "/ajax/minicart.aspx?cartname=" + cartName, false);
    //    xmlhttp.send();
    //    document.getElementById("/ajax/minicart.aspx?cartname=" + cartName + 'items').innerHTML = xmlhttp.responseText;





