﻿if(window.clipboardData){String.prototype.toClipboard = function(){return window.clipboardData.setData("Text","" + this).toString();};};
function nickName()
{
    if($("input#FullName").val().length==0)
    {
        $("input#FullName").val(($("input#SurName").val() + ' ' + $("input#FirstName").val()).toUpperCase());
    }
}
function setupWizard() //setup wizard forms
{
    //# Initialise Wizards #
    BT_init();
    $("button, div.rsButton").css("opacity",0.7);
    $("input#SurName").blur(nickName);
    $("button, div.rsButton").hover(function(){
       $(this).css("opacity",1.0);
     },function(){
       $(this).css("opacity",0.7);
     });     
    var cartVal = $("span.mod_cart_total_incdel").text();
    if(cartVal){if(cartVal == "0.00"){$("div.cartStep").removeClass("wizStep").addClass("hiddenStep");}};
    $("input[@name=PasswordCheck], input[@name=Password]").blur(setPasswordCheck);
    setPasswordCheck();
    $("input[@name=AcceptAgreement]").click(function(){acceptAgreement($(this));});
    $("div.wizard div.wizStep").eq(0).addClass("currentStep");
    $("div.wizard div.wizStep").gt(0).addClass("otherStep");
    $("div.wizFooter button.back").hide();
    $("div.wizFooter button.next").text("Start");
    $("div.wizFooter button.cancel").click(function(){if(confirm("Cancel the Wizard and return to the previous page?")){history.back();}});
    $("div.wizFooter button").css("cursor","pointer");
    $("#fsCreditCard").hide();
    $("#fsCurrentAccount").hide();
    $("select#PayMeth").change(function()
    {
        if($(this)[0].selectedIndex == 0)
        {
            $("#fsCreditCard").hide();
            $("#fsCurrentAccount").hide();
        }
        if($(this)[0].selectedIndex == 1)
        {
            $("#fsCreditCard").show();
            $("#fsCurrentAccount").hide();
        }
        if($(this)[0].selectedIndex == 2)
        {
            $("#fsCreditCard").hide();
            $("#fsCurrentAccount").show();
        }        
    });
    var steps = $("div.wizard div.wizStep").length;
    $("div.wizNumbers").gt(steps-1).hide();
    $("div.wizNumbers").css("opacity",0.7);
    $("div.wizNumbers").eq(0).css("opacity",1.0)
    $("button.tellmemore").click(function(){
        linkTo("/main.aspx?ID=844");
    }).show();    
    //# Next Button Click #
    $("div.wizFooter button.next").click(function(){
        var curStep = $("div.wizard div.wizStep").index($("div.currentStep")[0]); 
        if(!validateStep()) return false;
        //# Copy Address Details to Delivery #
        if(document.forms[1])
        {
            if(document.forms[1].Add01 && document.forms[1].Add1)
            {
                if(document.forms[1].Add01.value.length == 0)
                {
                    if(document.forms[1].Add01.value.length == 0)
                        document.forms[1].Add01.value = document.forms[1].Add1.value;
                    if(document.forms[1].Add02.value.length == 0)
                        document.forms[1].Add02.value = document.forms[1].Add2.value;
                    if(document.forms[1].Add03.value.length == 0)
                        document.forms[1].Add03.value = document.forms[1].Add3.value;
                    if(document.forms[1].Add04.value.length == 0)
                        document.forms[1].Add04.value = document.forms[1].AddPCode.value;                    
                }
            }
        }
        //# Finish or Payment Buttons #
        if($(this).text() == "Finish" || $(this).text() == "Payment")
        { 
            var fparms = form2JSON(document.getElementById("frmAction"));
            //var products = getCartProducts();
            $.blockUI(" ");
            if(fparms.MANum == "0") //## This is a new Customer 
            {
                if(fparms.MAType == "M") //## Sign-Up New MA
                {
                    fparms["OrderHTML"] = document.getElementById("frmAction").innerHTML;
                    statusBusy(true);
                    $.post("/includes/sportron/insertMA.aspx",fparms, function(data)
                    {
                        statusBusy(false);
                        $.unblockUI();
                        eval("customer = " + data);
                        if(customer.msg)
                        {
                            alert(customer.msg); 
                        }
                        else
                        {
                            alert("Congratulations, you are now a Sportron Marketing Associate... \n\nYour Partner Number is : " + customer.MktAssocNum + "\n\nAll your details have been Emailed to you. \n\nYou will now be logged in!");
                            linkTo("/Login");
                        }
                    });
                }
                else // ## Register New Direct Customer
                {
                    statusBusy(true);
                    $.getJSON("/includes/sportron/insertDirectCustomer.aspx",fparms, function(customer)
                    {
                        statusBusy(false);
                        $.unblockUI();
                        if(customer.msg)
                        {
                            
                            alert(customer.msg);
                        }
                        else
                        {
                            alert("Congratulations, you are now a Sportron Direct Customer... \n\nYou will now be logged in.");
                            linkTo("/Login");
                        }
                    });
                }
            }
            else // ## This is an existing Customer
            {
                if($("div.wizTitle").text().trim() == "Checkout Wizard")
                {
                    statusBusy(true);
                    setupOrder(_customer.MANum == undefined ? "0" : _customer.MANum, _customer.MAType == undefined ? "D" : _customer.MAType );
                    fparms["OrderHTML"] = document.getElementById("frmAction").innerHTML;
                    $.post("/includes/sportron/insertDirectOrder.aspx",fparms, function(data)
                    {
                        statusBusy(false);
                        $.unblockUI();
                        eval("order = " + data);
                        if(order.msg)
                        {
                            alert(customer.msg); 
                        }
                        else
                        {
                            //## Set Up form for VCS and Present Paid By Credit Card Button
                            var frmVCS = $("form#vcsForm")[0];
                            if(frmVCS)
                            {
                                //debugger;
                                frmVCS.p2.value  = order.WebOrderID + "T" + order.OrderTXNID;
                                frmVCS.p4.value  = order.Amount;
                                frmVCS.p10.value = frmVCS.p10.value + "&s=" + order.OrderSession + "&WebOrderID=" + order.WebOrderID + "T" + order.OrderTXNID + "&MANum=" + _customer.MANum;
                                frmVCS.m_1.value = order.OrderSession;
                                frmVCS.m_2.value = order.WebOrderID;
                                frmVCS.m_3.value = order.OrderTXNID;
                                frmVCS.m_4.value = order.GUID;
                            }
                        }
                    });
                }
                else
                {
                    if(fparms.MAType == "M" && _customer.MAType == "D") //## Sign-Up New MA from existing Direct Customer Account
                    {
                        statusBusy(true);
                        fparms["OrderHTML"] = document.getElementById("frmAction").innerHTML;
                        $.post("/includes/sportron/insertMA.aspx",fparms, function(data)
                        {
                            statusBusy(false);
                            $.unblockUI();
                            //debugger;
                            eval("customer = " + data);
                            if(customer.msg)
                            {
                                alert(customer.msg); 
                            }
                            else
                            {
                                alert("Congratulations, you are now a Sportron Marketing Associate... \n\nYou will now be logged in.");
                                linkTo("/Login");
                            }
                        });
                    }
                    else //##  Exsisting MA signing in for the first time
                    {
                        statusBusy(true);
                        $.getJSON("/includes/sportron/updateMA.aspx",fparms, function(customer)
                        {
                            statusBusy(false);
                            $.unblockUI();
                            if(customer.msg)
                            {
                                alert(customer.msg);
                            }
                            else
                            {
                                if(fparms.MAType == "M")
                                    alert("Your updated details have been submitted. \nThank you for taking the time to keep your Sportron Marketing Associate profile up to date... \n\nYou will now be logged in.");
                                else
                                    alert("Your updated details have been submitted. \nThank you for taking the time to keep your Sportron Direct Customer profile up to date... \n\nYou will now be logged in.");
                                linkTo("/Login");
                            }
                        });
                    } 
                }           
            }

        }
        //# Start Button #
        if($(this).text() == "Start")
        {
            if(typeof ppp != "undefined")
            {
                if(ppp == "")ppp="0";
                if(parseInt(ppp,10) < 100)
                {
                    alert("You need a minimum PPP value of 100 in your Shopping Basket to sign-up as a Sportron Marketing Associate.\n\nPlease add a few more products to your Shopping Basket and try again!");
                    return false;
                }
            }  
            //debugger;
            var parms = {IDNum: $("input#IDNum").val().trim(), cache:newid()};
            $.blockUI(" ");
            $.post("includes/sportron/getDataByID.aspx",parms,function(data)
            {
                $.unblockUI();
                //debugger;
                eval("customer = " + data);
                if(typeof customer == "undefined")
                {
                    $("div.wizFooter button.next").text("Next");
                   // alert("We couldn't find you in our database, please complete the form!");
                    $("div.wizFooter button.next").text("Next");
                    $("div.wizFooter button.next").trigger("click");   
                    setupOrder(_customer.MANum == undefined ? "0" : _customer.MANum, _customer.MAType == undefined ? actionMAType : _customer.MAType );                  
                }
                else
                {
                    //alert("We seem to have found you " + (customer.FirstName+ "").toTitleCase().trim() + ", please check and confirm the details that we have on file... ");
                    var frm = document.getElementById("frmAction");
                    for(var i=0; i < frm.elements.length; i++)
                    {
                        if(frm.elements[i].name)
                        {
                            if(frm.elements[i].type.indexOf("select")> -1)
                            {
                                setSelect(frm.elements[i], getJSONData(customer,frm.elements[i].name));
                            }
                            else
                            {
                                if(frm.elements[i].type.toLowerCase() == "radio")
                                {
                                    if(frm.elements[i].value ==  getJSONData(customer,frm.elements[i].name))
                                    {
                                        frm.elements[i].checked = true; 
                                        $("#fs" + frm.elements[i].id).show();
                                    }         
                                }
                                else if(frm.elements[i].type.toLowerCase() == "checkbox")
                                {
                                    if(frm.elements[i].value ==  getJSONData(customer,frm.elements[i].name))
                                    {
                                        frm.elements[i].checked = true; 
                                        $("#fs" + frm.elements[i].id).show();
                                    }                               
                                }                                
                                else
                                {
                                    if(frm.elements[i].name != "MAType")
                                    {
                                        frm.elements[i].value = getJSONData(customer,frm.elements[i].name).trim();
                                    }
                                }
                                //Reset Passwords so that at MA Signup passwords are renewed
                                if(frm.PasswordCheck)
                                {
                                    frm.PasswordCheck.value = "";
                                    frm.Password.value = "";
                                }
                            }
                        }
                    }
                    //debugger; 
                    setupOrder(_customer.MANum == undefined ? "0" : _customer.MANum, _customer.MAType == undefined ? "D" : _customer.MAType );
                    calcNumbers(steps);
                }
            });
            return false;
        }
        //# General Next #        
        checkDelivery();
        if(curStep < steps)
        {
            curStep++;
            $("div.wizard div.wizStep").removeClass("currentStep").addClass("otherStep");        
            $("div.wizard div.wizStep").eq(curStep).removeClass("otherStep").addClass("currentStep");
            $("div.wizNumbers").css("opacity",0.7);
            $("div.wizNumbers").eq(curStep).css("opacity",1.0)
            if(curStep > 0)
            {
                $("div.wizFooter button.back").show();    
            }
            if(curStep == steps-2)
            {
                if($("div.wizTitle").text().trim() == "Checkout Wizard")
                {
                    $(this).text("Payment");
                }
                else
                {
                    $(this).text("Finish");
                }    
            }
            else if (curStep == steps-1)
            {
                $("div.wizFooter button").hide();
            }
            else
            {
                $(this).text("Next"); 
            }                             
        }
        $("body")[0].style.height = "auto";
    }); 
    //# Back Button #
    $("div.wizFooter button.back").click(function(){
        var curStep = $("div.wizard div.wizStep").index($("div.currentStep")[0]); 
        if(curStep > 0)
        {
            curStep--;
            $("div.wizard div.wizStep").removeClass("currentStep").addClass("otherStep");        
            $("div.wizard div.wizStep").eq(curStep).removeClass("otherStep").addClass("currentStep");
            $("div.wizNumbers").css("opacity",0.5);
            $("div.wizNumbers").eq(curStep).css("opacity",1.0)
            if(curStep == 0)
            {
                $(this).hide();    
            } 
            if(curStep == steps-1)
            {
                $("div.wizFooter button.next").text("Finish");    
            }
            else
            {
                $("div.wizFooter button.next").text("Next"); 
            }                                           
        }
        $("body")[0].style.height = "auto";
    });      
}
//# Calculate Numbers for Steps #
function calcNumbers(steps)
{
    if($("input#MAType").val() == "M")
    {
        $("div.wizNumbers").show();
        $("div.wizNumbers").gt(0).css("opacity",0.7).gt(steps-2).hide();
    }
    else
    {
        if($("div.wizTitle").text().trim() == "Checkout Wizard")
        {
            $("div.wizNumbers").show();
            $("div.wizNumbers").gt(0).css("opacity",0.7).gt(steps-2).hide();
            $("div.stepMA").removeClass("wizStep");        
        }
        else
        {
            $("div.wizNumbers").show();
            $("div.wizNumbers").gt(0).css("opacity",0.7).gt(steps-4).hide();
            $("div.stepMA").removeClass("wizStep");        
        } 

    }
    $("input[@name=Password]").trigger("blur");
    $("div.wizFooter button.next").text("Next");
    $("div.wizFooter button.next").trigger("click");   
}

//# Helper Functions #
function setPasswordCheck()
{
    $("input[@name=PasswordCheck]").attr("validationRule", function(){ return $("input[@name=Password]").val();}).attr("validationMessage", "Re-type Password must match Password");
}

function acceptAgreement(jObj)
{
     var obj = jObj[0];
     if(obj.checked)
        obj.value = "Agree";
     else
        obj.value = "Disagree";
}

function validateStep()
{
    var curStep = $("div.wizard div.wizStep").index($("div.currentStep")[0]); 
    var step = $("div.wizard div.wizStep").eq(curStep);
	var isMatch = true;
	var elements = step.find("input, select, textarea, hidden").get();
	for(var i=0; i < elements.length;i++)
	{
	    if(elements[i].getAttribute("validationRule") && isVisible(elements[i]))
	    {
		    var re = new RegExp(elements[i].getAttribute("validationRule"));
		    if (elements[i].value.match(re)) {
		        isMatch = true;
		        removeClassName(elements[i], "input_fail");
		    } else {
		        alert(elements[i].getAttribute("validationMessage"));
		        addClassName(elements[i], "input_fail");
		    try{
			    elements[i].focus();
		    }
		    catch(e){
			    //unable to set focus to element
		    }
		    isMatch = false;
		    break;
		    }
	    }
	    if(isCard(elements[i]))
	    {
	        isMatch = true;
	        removeClassName(elements[i], "input_fail");
	    }
	    else
	    {
	        alert(ccErrors[ccErrorNo]);
	        addClassName(elements[i], "input_fail");
		    try{
			    elements[i].focus();
		    }
		    catch(e){
			    //unable to set focus to element
		    }	        
	        isMatch = false;
	        break;
	    }
	}
	return isMatch;
}

function statusBusy(bBusy)
{
    if(bBusy)
    {
        $("div#status").html("<img alt=\"Processing please wait ...\" style=\"margin-top:6px; width:190px;\" src=\"/images/loadingAnimation.gif\" />");
    }
    else
    {
        $("div#status").html("Done...");
    }
}

function isCard(el)
{

    if(el.name != "CardNumber")return true;
    if(!isVisible(el))return true;
    return  checkCreditCard ($("input[@name=CardNumber]").val(), $("select[@name=CardType]").val());
}

function isVisible(el)
{
    while(el.tagName.toLowerCase() != "body")
    {
        if($(el).is(':hidden'))return false;
        el = el.parentNode;
    }
    return true;
}

function getJSONData(obj, val)
{

    if(typeof obj[val] == "undefined")
    {
        return "";
    }
    else
    {
        return obj[val];
    }
}

function setSelect(obj, val)
{
    for(var i=0;i < obj.length;i++)
    {
        if(obj.options[i].value.trim() == val.trim())
        {
            obj.selectedIndex = i;
            break;
        }
    }
}
