﻿//Set the default tab
var seltab = 't2';
var currentBasketIndex;
var currentBasketQty;
var lastQtyAction;
var addmoved = false;
var addaddmoved = false;


function emptyBasketCheck(){
    return confirm('Are you sure?', 'Are you sure you want to empty your cart?', function(){
        $(".basketempty").show().html('Emptying cart').css({backgroundColor:"#dedede", border:"1px solid #bebebe"});
        $("#dispatchEstimate").hide("slow");
        $("#pnlempybasket").hide("slow");
        $("#basketholder").hide("slow", function(){
            $("#emptyBasket").hide("fast", function(){
                sites_sspurplefishescom_basket.EmptyBasket("4", emptyBasketResponse);
            });
        });
    });
}

function emptyBasketResponse(response){
     if (response.error != null){
        alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
        return;
     }
     pfjs_displayMessage('.basketempty', 'success', response.value, false);
}

function confirm(title, message, callback) {
	$.modal('<div class=\'header\'><img src="/sites/streetshirts.com/template/images/ml.png" alt="" width="4" height="35" class="hileft" /><img src="/sites/streetshirts.com/template/images/mr.png" alt="" width="4" class="hiright" height="35" />' +title + '</div><p class=\'message\'></p><div class=\'buttons\'><div class=\'no modalClose\'>No</div><div class=\'yes\'>Yes</div>'
	    ,{
		close:false, 
		overlayId:'confirmModalOverlay',
		containerId:'confirmModalContainer', 
		onShow: function (dialog) {
			dialog.data.find('.message').append(message);
			// if the user clicks "yes"
			dialog.data.find('.yes').click(function () {
				// call the callback
				if ($.isFunction(callback)) {
					callback.apply();
				}
				// close the dialog
				$.modal.close();
			});
		}
	});
}

function pjfs_changeProductQty(basketindex, direction){
    currentBasketIndex = basketindex;
    lastQtyAction = direction;
    currentBasketQty = $("#qty" + currentBasketIndex).html;
    $(".feedback").queue([]).stop().css({backgroundColor:"#dedede", border:"1px solid #bebebe"}).html("Changing quantity...").show(function(){
        $("#stock" + currentBasketIndex).html('<img class=\'ntt\' src=\'/sites/streetshirts.com/template/images/b_u.gif\' alt=\Updating stock\' /><span class=\'dgc\'>Updating...</span>');
        sites_sspurplefishescom_basket.ChangeQty(basketindex, direction, pfjs_changeProductQtyResp);
    });
}

function pfjs_removeItem(basketindex){
    currentBasketIndex = basketindex;
    return confirm('Are you sure?', 'Are you sure you want to remove this item?', function(){
        $(".feedback").queue([]).stop().css({backgroundColor:"#dedede", border:"1px solid #bebebe"}).html("Removing item...").show(function(){
            sites_sspurplefishescom_basket.RemoveItem(basketindex, pfjs_changeProductQtyResp);
        });
    });
}

function pfjs_applyVoucher(){
    $(".feedback").queue([]).stop().css({backgroundColor:"#dedede", border:"1px solid #bebebe"}).html("Changing quantity...").show(function(){
        sites_sspurplefishescom_basket.useVoucher($("#txtvouchercode").val(), function(response){
            if (response.error != null){
                alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
                return;
            }
            //Update the totals
            $("#pfjssubtotal").html(formatCurrency(response.value._subtotal));
            $("#pfjsdiscount").html(formatCurrency(response.value._discount));
            $("#pfjsdelivery").html(formatCurrency(response.value._deliverycost));
            $("#pfjsvoucher").html(formatCurrency(response.value._voucheramount));
            $("#pfjstotaltopay").html(formatCurrency(response.value._totalcost - response.value._voucheramount));
            $("#pfjstotalvattopay").html(formatCurrency(response.value._totalvat));
            
            pfjs_displayMessage('.basketempty', 'success', 'Voucher applied to your order.', false);
        });
    });
}

function pfjs_changeProductQtyResp(response){
     //Check for errors
     if (response.error != null){
        alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
        return;
     }
     
     //Update products and line totals
     var index = pfjs_findInArray(currentBasketIndex, response);
     
     //Continue to show item?
     if(response.value._orderlines.length > 0){
         if(pfjs_findInArray(currentBasketIndex, response) == -1){
            $("#bask" + currentBasketIndex).hide("slow");
            pfjs_displayMessage('.feedback', 'success', 'Item removed from cart.', true);
        }
         else{
            $("#qty" + currentBasketIndex).html(response.value._orderlines[index]._qty);
            
            //Update stock
            for(var i = 0; i<response.value._orderlines.length; i++){
                if(response.value._orderlines[i].instock) $("#stock" + response.value._orderlines[i]._safedesignkey).html('<img class=\'ntt\' src=\'/sites/streetshirts.com/template/images/gisy.gif\' alt=\'In stock\' /><span class=\'dgc\'>Available immediately</span>');
                else $("#stock" + response.value._orderlines[i]._safedesignkey).html('<img class=\'ntt\' src=\'/sites/streetshirts.com/template/images/gis24.gif\' alt=\'Not in stock\' /><span class=\'dgc\'>Available in 24 hours</span>');
            }
            //Report
            pfjs_displayMessage('.feedback', 'success', 'Quantity '+ lastQtyAction +'d by 1.', true);    
         }
         
        //Update the totals
        $("#pfjssubtotal").html(formatCurrency(response.value._subtotal));
        $("#pfjsdiscount").html(formatCurrency(response.value._discount));
        $("#pfjsdelivery").html(formatCurrency(response.value._deliverycost));
        $("#pfjsvoucher").html(formatCurrency(response.value._voucheramount));
        $("#pfjstotaltopay").html(formatCurrency(response.value._totalcost - response.value._voucheramount));
        $("#pfjstotalvattopay").html(formatCurrency(response.value._totalvat));
        
        //Displaydiscountinfo?
        if(formatCurrency(response.value._discount) != 0.00){
            $("#discobox .infoboxtext").html(response.value._discountExplanation).show(function(){
                $("#discobox").show("normal");            
            });
        }
        else{
            $("#discobox").hide("normal"); 
        }
        
        //Dispatch estimate
        $("#distime").html(response.value._howLongLeft);
        $("#disdis").html(response.value._whenCanBeDispatched);          
     }
     else
     {
        $(".feedback").queue([]).stop().hide();
        $(".basketempty").show().html('Emptying basket').css({backgroundColor:"#dedede", border:"1px solid #bebebe"});
        $("#dispatchEstimate").hide("slow");
        $("#pnlempybasket").hide("slow");
        $("#basketholder").hide("slow", function(){
                $("#emptyBasket").hide("fast");
        });

        pfjs_displayMessage('.basketempty', 'success', 'You have nothing in your cart. Click \'Design your own\' to get started.', false);
     }
     //Update order totals
}

function pfjs_startCheckout(){
    $(".feedback").queue([]).stop().css({backgroundColor:"#dedede", border:"1px solid #bebebe"}).html("Starting checkout...").show(function(){
        
        $("#t2mhl").attr("onmouseover", "").bind("click", function(e){
            return false;
        });
        $("#t2mhl").html("<img src=\"/sites/streetshirts.com/template/images/tm_l_d.gif\" alt=\"\" width=\"5\" height=\"34\" id=\"t2mi\" class=\"t_li\" />1. Cart - Complete");
        
        //Check if logged in or not
        sites_sspurplefishescom_basket.IsLoggedIn(pfjs_startCheckoutResp);
    });
}

function pfjs_startCheckoutResp(response){
    if (response.error != null){
        alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
        return;
    }
     
    //Check if logged in or not
    if(response.value==true){
        $("#t4mhl").attr("onmouseover", "").bind("click", function(e){
            return false;
        });
        $("#t4mhl").html("<img src=\"/sites/streetshirts.com/template/images/tm_l_d.gif\" alt=\"\" width=\"5\" height=\"34\" id=\"t4mi\" class=\"t_li\" />2. Sign in/up - Complete");
        selecttab('t5');
        pfjs_addressdef();
    }else{
        selecttab('t4');
    }
}

function pfjs_signUp(valgroup){
    //If user doesn't work out postcode searching
    //if(isPCSelectionBoxShowing){$("#ctl00_ContentPlaceHolder1_ctl00_Address1_btnpcretrieve").click();}
    
    //Transfer US address
    if(!addmoved){
         $("input[ValidationGroup='"+ valgroup +"'].txt_address1").val($("input[ValidationGroup='"+ valgroup +"'].txt_usadd1").val());
         $("input[ValidationGroup='"+ valgroup +"'].txt_address2").val($("input[ValidationGroup='"+ valgroup +"'].txt_usadd2").val());
         $("input[ValidationGroup='"+ valgroup +"'].txt_address3").val($("input[ValidationGroup='"+ valgroup +"'].txt_uscity").val());
         $("input[ValidationGroup='"+ valgroup +"'].txt_address4").val($("select[ValidationGroup='"+ valgroup +"'].txt_usstate").val());
         $("input[ValidationGroup='"+ valgroup +"'].txt_postcode").val($("input[ValidationGroup='"+ valgroup +"'].txt_uszip").val());
         addmoved = true;
    }
    
    //Continue
    pfjs_addpreparetocheckout();
    $(".feedback2").queue([]).stop().css({backgroundColor:"#dedede", border:"1px solid #bebebe"}).html("Signing up...").show(function(){ 
        if(validategroup(valgroup)){
            sites_sspurplefishescom_basket.SignUp($("input.txt_title").val(),$("input.txt_firstname").val(),$("input.txt_lastname").val(),
            $("input.txt_businessname").val(),'','',$("input.txt_email").val(),
            $("input.txt_password").val(),$("input.txt_secretquestion").val(),$("input.txt_secretanswer").val(),$("input.txt_mobilephone").val(),
            $("input[ValidationGroup='"+ valgroup +"'].txt_address1").val(),$("input[ValidationGroup='"+ valgroup +"'].txt_address2").val(),$("input[ValidationGroup='"+ valgroup +"'].txt_address3").val(),$("input[ValidationGroup='"+ valgroup +"'].txt_address4").val(),
            $("input[ValidationGroup='"+ valgroup +"'].txt_postcode").val(),$("input[ValidationGroup='"+ valgroup +"'].txt_country").val(),
            pfjs_signUpResponse);
        }
        else
        {
            //Do nothing. Errors are already displayed.
            pfjs_displayMessage('.feedback2', 'success', 'Error signing up. Please correct the errors shown below and try again.', true);  
            return false;
        }
    });
}

function pfjs_signUpResponse(response){
    if (response.error != null){
        alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
        return;
    }
    //When we come back
    if(response.value == "success"){
        $("#t4hl").attr("onmouseover", "").bind("click", function(e){
            return false;
        });
        $("#t4hl").html("<img src=\"/sites/streetshirts.com/template/images/t4_l_d.gif\" alt=\"\" width=\"5\" height=\"34\" id=\"t4i\" class=\"t_li\" />2. Sign in/up - Complete");
        selecttab('t5');
        pfjs_addressdef();
    }
    else if(response.value == "duplicateemail"){
        pfjs_displayMessage('.feedback2', 'success', 'Your email address is already registered, please sign in instead or use a different email address. If you have forgotten your password, use the link on the right to reset it.', true);  
    }
    else
    {
        alert(response.value);
    }
}

function pfjs_signIn(valgroup){
    $(".feedback2").queue([]).stop().css({backgroundColor:"#dedede", border:"1px solid #bebebe"}).html("Signing in...").show(function(){ 
        if(validategroup(valgroup)){
               sites_sspurplefishescom_basket.SignIn($("input.txt_loginemail").val(),$("input.txt_loginpass").val(), function(response){
                    //When we get back
                    if (response.error != null){
                        alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
                        return;
                    }
                    if(response.value == "success"){
                        $("#t4hl").attr("onmouseover", "").bind("click", function(e){
                            return false;
                        });
                        $("#t4hl").html("<img src=\"/sites/streetshirts.com/template/images/t4_l_d.gif\" alt=\"\" width=\"5\" height=\"34\" id=\"t4i\" class=\"t_li\" />2. Sign in/up - Complete");
                        selecttab('t5');
                        pfjs_addressdef();
                    }
                    else
                    {
                        pfjs_displayMessage('.feedback2', 'success', response.value, true);  
                    }
               });
        }
        else
        {
            pfjs_displayMessage('.feedback2', 'success', 'Error signing in. Please correct the errors shown below and try again.', true);  
            return false;
        }
    });
}

var tid;
function pfjs_addressdef(){
    $("#delname").html("Loading...");
    sites_sspurplefishescom_basket.getLastAddress(function(response){
        if (response.error != null){
        alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
        return;
        }
        $("#delname").html(response.value.delname);
        $("#deladd1").html(response.value.address1);
        $("#deladd2").html(response.value.address2);
        $("#deladd3").html(response.value.address3);
        $("#deladd4").html(response.value.address4);
        $("#delpostcode").html(response.value.postcode);
        $("#delcountry").html(response.value.country);
        tid = response.value.id;
        sites_sspurplefishescom_basket.getAddresses(function(response){
            if (response.error != null){
                alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
                return;
            }
            for(var i =0; i< response.value.Collection.length; i++){
                $.create('option', {'value': response.value.Collection[i].Name}, response.value.Collection[i].Value).appendTo('#ddl_addresses');
            }
            $("#ddl_addresses *").attr('selected','');
            $("#ddl_addresses option[value='"+ tid +"']").attr('selected','true');
            //Change handler
            $("#ddl_addresses").change(function() 
            { 
                sites_sspurplefishescom_basket.changeAddress($("#ddl_addresses").val(), function(response){
                    if (response.error != null){
                        alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
                        return;
                    }
                    $("#delname").html(response.value.delname);
                    $("#deladd1").html(response.value.address1);
                    $("#deladd2").html(response.value.address2);
                    $("#deladd3").html(response.value.address3);
                    $("#deladd4").html(response.value.address4);
                    $("#delpostcode").html(response.value.postcode);
                    $("#delcountry").html(response.value.country);
                });
            }); 
        });
    });
    sites_sspurplefishescom_basket.getContactDetails(function(response){
        if (response.error != null){
            alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
            return;
        }
        var st = response.value.split('|');
        $("input.txt_delivery_email").val(st[0]);
        $("input.txt_delivery_mobile").val(st[1]);
    });
    sites_sspurplefishescom_basket.getDeliveryMethods(function(response){
        if (response.error != null){
            alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
            return;
        }
        for(var i=0; i<response.value.length; i++){
            if(response.value[i].type=='selected'){
                $("#delinfo").html('You have selected: ' + response.value[i].deliveryname + '<br/>' + response.value[i].deliverydescription + '<br />');
                $("#delgar").html('After dispatch, you will receive you order in/on:<br/><span style="color:#e03583">' + response.value[i].deliverytime+'</span>');
                $.create('option', {'selected':'selected','value': response.value[i].deliveryname}, response.value[i].deliveryname +' (£' + response.value[i].deliverycost + ')').appendTo('#ddl_delivery_type');
            }
            else
            {
                $.create('option', {'value': response.value[i].deliveryname}, response.value[i].deliveryname +' (£' + response.value[i].deliverycost + ')').appendTo('#ddl_delivery_type');
            }           
        }
        $("#ddl_delivery_type").change(function() 
        { 
            sites_sspurplefishescom_basket.changeDeliveryMethod($("#ddl_delivery_type").val(), function(response){
                for(var i=0; i<response.value.length; i++){                   
                    if(response.value[i].deliveryname==$("#ddl_delivery_type").val()){
                        $("#delinfo").html('You have selected: ' + response.value[i].deliveryname + '<br/>' +response.value[i].deliverydescription + '<br />');
                        $("#delgar").html('After dispatch, you will receive you order in/on:<br/><span style="color:#e03583">' + response.value[i].deliverytime+'</span>');
                    }
                }
            });
        });
    });
}

function pfjs_showaddadd(){
    $("#bnewadd").show("slow");
}

function pfjs_addAdd(valgroup){
//If user doesn't work out postcode searching
    //if(isPCSelectionBoxShowing){$("#ctl00_ContentPlaceHolder1_ctl00_DeliveryAddress_btnpcretrieve").click();}
    
      //Transfer US address
      if(!addaddmoved){
         $("input[ValidationGroup='"+ valgroup +"'].txt_address1").val($("input[ValidationGroup='"+ valgroup +"'].txt_usadd1").val());
         $("input[ValidationGroup='"+ valgroup +"'].txt_address2").val($("input[ValidationGroup='"+ valgroup +"'].txt_usadd2").val());
         $("input[ValidationGroup='"+ valgroup +"'].txt_address3").val($("input[ValidationGroup='"+ valgroup +"'].txt_uscity").val());
         $("input[ValidationGroup='"+ valgroup +"'].txt_address4").val($("select[ValidationGroup='"+ valgroup +"'].txt_usstate").val());
         $("input[ValidationGroup='"+ valgroup +"'].txt_postcode").val($("input[ValidationGroup='"+ valgroup +"'].txt_uszip").val());
        addaddmoved = true;
       }
    
    $(".feedback3").queue([]).stop().css({backgroundColor:"#dedede", border:"1px solid #bebebe"}).html("Adding address...").show(function(){
        pfjs_addpreparetocheckout();
        if(validategroup(valgroup)){
            sites_sspurplefishescom_basket.storeNewAddress($("input.txt_delname").val(), $("input[ValidationGroup='"+ valgroup +"'].txt_address1").val(),
            $("input[ValidationGroup='"+ valgroup +"'].txt_address2").val(),
            $("input[ValidationGroup='"+ valgroup +"'].txt_address3").val(),
            $("input[ValidationGroup='"+ valgroup +"'].txt_address4").val(),
            $("input[ValidationGroup='"+ valgroup +"'].txt_postcode").val(),
            $("input[ValidationGroup='"+ valgroup +"'].txt_country").val(),
             function(response){
                if (response.error != null){
                    alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
                    return;
                }
                //DDL
                $.create('option', {'value': response.value.id}, $("input.txt_delname").val() + ' (' + $("input[ValidationGroup='"+ valgroup +"'].txt_address1").val() + ')').appendTo('#ddl_addresses');
                $("#ddl_addresses *").attr('selected','');
                $("#ddl_addresses option[value='"+ response.value.id +"']").attr('selected','true');
                //Address     
                $("#bnewadd").hide("slow");      
                $("#delname").html(response.value.delname);
                $("#deladd1").html(response.value.address1);
                $("#deladd2").html(response.value.address2);
                $("#deladd3").html(response.value.address3);
                $("#deladd4").html(response.value.address4);
                $("#delpostcode").html(response.value.postcode);
                $("#delcountry").html(response.value.country);
                //Update
                pfjs_displayMessage('.feedback3', 'success', 'Address added and set as delivery address.', true); 
            });
        }
        else
        {
            pfjs_displayMessage('.feedback3', 'success', 'Error adding address. Please correct the errors shown below and try again.', true); 
        }
    });
}

//CHECKOUT!
function pfjs_checkout(valgroup){
    $(".feedback3").queue([]).stop().css({backgroundColor:"#dedede", border:"1px solid #bebebe"}).html("Checking out... PLEASE WAIT... MAY TAKE 60 sec...").show(function(){
        if($('#ckb_terms').is(':checked')){    
            if(validategroup(valgroup)){
                sites_sspurplefishescom_basket.Checkout($("input.txt_delivery_email").val(), $("input.txt_delivery_mobile").val(), function(response){
                    if (response.error != null){
                        alert('ERROR. Please refresh/reload this page by using the button on your browser or by pressing Ctrl + F5 to continue and try again.');
                        return;
                    }
                    else{
                        //Redirect to payments
                        window.location = response.value;
                    }
                });
            }
            else
                pfjs_displayMessage('.feedback3', 'success', 'Please correct the errors shown below and try again.', true); 
        }
        else
        {
            pfjs_displayMessage('.feedback3', 'success', 'You must accept our terms and conditions to continue.', true);   
            $('#ckb_div').css({backgroundColor:"#fff", border:"1px solid #999", padding:"7px"})
        }
    });
}

// UI stuff
$(document).ready(function() {
    $("input[@name='ctl00$ContentPlaceHolder1$ctl00$usertype']").click(function(){
        var checkdu = $("input[@name='ctl00$ContentPlaceHolder1$ctl00$usertype']:checked").val();
        if (checkdu == 'radBusiness') $(".isbiz").show(); else $(".isbiz").hide();
    });
});

//UTILS
//---
//---
//Finds the index of the basket item containing
//the safe designkey given
function pfjs_findInArray(designkey, response){
    var index = -1;
    for(var i=0; i<response.value._orderlines.length; i++){
        if(response.value._orderlines[i]._designkey == 'PFC[' + designkey.split('PFC')[1] + ']')
            index = i;
    }
    return index;
}

//Displays a success message
function pfjs_displayMessage(where, type, message, hide){
    $('html, body').animate({scrollTop: 0}, 400);
    $(where).html(message).animate( { backgroundColor: '#ffffff', borderBottomColor: '#bebebe', borderLeftColor: '#bebebe', borderRightColor: '#bebebe', borderTopColor: '#bebebe' }, 100, function(){
        $(this).animate({opacity: 1.0}, 2000, function(){
            $(this).animate( { backgroundColor: '#74d6fa', borderBottomColor: '#45c8f8', borderLeftColor: '#45c8f8', borderRightColor: '#45c8f8', borderTopColor: '#45c8f8' }, 2000, function(){
                    $(this).animate({opacity: 1.0}, 5000, function(){
                        if(hide) $(this).hide("fast");
                    });
                });
            });
        });
}

function formatCurrency(num)
{
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
    cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+
    num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + num + '.' + cents);
}