﻿    
/**********************   Version 0.4   ****************************************/

//PUBLIC DECLERATIONS
var affiliateLoginUi = new AffiliateLoginUiClass();         //LOGIN - 2
var affiliateSignUpUi = new AffiliateSignUpUiClass();       //SIGNUP - 3
var AffiliateReportsUI = new AffiliateReportsUIClass();     //REPORTS - 4
var affiliateCampaignUI = new affiliateCampaignUIClass();   //CAMPAIGN - 5
var affiliateAccountUI = new AffiliateAccountUIClass();     //MY ACCOUNT - 6
var dialogBox = new DialogBoxClass();
var dashboard = new AffiliateDashBoardClass();
var spinner = new UiSpinnerClass();
var uivalidation = new UiValidationClass();

function preventDefault(e) {
        e.preventDefault();
    }   
/********************************************************DOCUMTNE READY - 0 ************************************************************************/
/*//STOP FORM FROM POSTING
$(document).ready(function() {
    
    $("form").bind("submit", preventDefault);
    $("#twitter").getTwitter({
        userName: "referback",
        numTweets: 5,
        loaderText: "Loading tweets...",
        slideIn: true,
        slideDuration: 750,
        showHeading: true,
        headingText: "Latest Tweets",
        showProfileLink: true,
        showTimestamp: true
    });
    $("form > input:eq(0)").focus();
    $("form > input:eq(0)").blur().next().focus();
});*/

$(
    function() {//RUNS PAGE LOAD FUNCTIONS AND DETETS USER INTERACTIONS WHCIH CALLS THE APROPRATE CLASS
        $("#twitter").getTwitter({
            userName: "referback",
            numTweets: 5,
            loaderText: "Loading tweets...",
            slideIn: true,
            slideDuration: 750,
            showHeading: true,
            headingText: "Latest Tweets",
            showProfileLink: true,
            showTimestamp: true
        });
        $("form").bind("submit", preventDefault);
        $("form > input:eq(0)").focus();
        $("form > input:eq(0)").blur().next().focus();
        //DETERMINE WHICH LANGUAGE THE USER IS USING
        var language = $.cookie('language');
        switch (language){
            case 'de':{
                $.getScript('/scripts/resources.de.js');
                break;
            }
            case 'es':{
                $.getScript('/scripts/resources.es.js');
                break;
            }
            case 'fr':{
                $.getScript('/scripts/resources.fr.js');
                break;
            }
            case 'it':{
                $.getScript('/scripts/resources.it.js');
                break;
            }            
            default:{
                $.getScript('/scripts/resources.en.js');
                break;
            }
        }
        
        //CREATE THE SPINNER IMAGE AND INSERT IT, BUT KEEP IT HIDDEN UNTILL CALLED
        $("body").append("<div class='spinner'></div>"); //<img id='divSpinner' src='~/images/ajax-loader2.gif' alt='Spinner Image' />
        $(".spinner").hide(); //#divSpinner

        //CREATE THE DIALOG BOX CONTAINER, KEEP IT HIDDEN UNTILL CALLED
        $("body").append("<div id='divDialogBox'><p id='dialogContent'></p></div>");
        $("#divDialogBox").hide();

        //login
        if ($("#buttonLogin").length > 0) {
            $("#buttonLogin").click(affiliateLoginUi.LoginButtonClicked);
            $("#btnRequestPass").click(affiliateLoginUi.RequstPasswordButtonClicked);
            $("#buttonResetPassword").click(affiliateLoginUi.ResetPasswordButtonClicked);
        }

        if ($("#btnRequestPass").length > 0) {
            $("#btnRequestPass").click(affiliateLoginUi.RequstPasswordButtonClicked);
            // $("input[newUserPassword]").passStrength({userid:"#newPasswordConfirmed" });
        }

        if ($("#buttonResetPassword").length > 0) {
            $("#buttonResetPassword").click(affiliateLoginUi.ResetPasswordButtonClicked);
            // $("input[name='newUserPassword']").passStrength({userid:"input[name='confirmUserPassword']" });
        }

        if ($("#buttonSignup").length > 0) {
            $("#divAffiliateURL").hide();
            $("#buttonSignup").attr("disabled", "disabled");
            $(".Password").passStrength({userid:"#inputEmail" });
            //$(".Password").blur(function(){$(".testresult, .testresult span").hide();});

            $("#buttonSignup").click(affiliateSignUpUi.SignupButtonClicked);
            $("#inputCheckbox").click(affiliateSignUpUi.SignUpcheckBoxClicked);
            $("input[name=\"inputAffiliateType\"]").click(affiliateSignUpUi.SignUpRadioButtonChanged);
            affiliateSignUpUi.SignUpRadioButtonChanged();
        }
        //login tooltip
        affiliateLoginUi.LoginToolTip();
        affiliateLoginUi.ForgotPassword();


        //dashboard
        dashboard.TableScr();
        dashboard.DashTooltip();

        //reports
        //INSERT THE EXPORT BUTTON ON THE VIEW
        $("#buttonGetReport").after("<input type='submit' id='buttonExportReport' value='Export Report'>");
        if ($("#buttonGetReport").length > 0) {
            $("#dateFrom").datepicker();
            $("#dateFrom").datepicker('option', 'dateFormat', 'yy-mm');
            $("#dateTo").datepicker();
            $("#dateTo").datepicker('option', 'dateFormat', 'yy-mm');

            $("#selectReport").change(AffiliateReportsUI.ReportSelectionChanged);
            $("#selectReport").change(AffiliateReportsUI.ReportButtonClicked);
            $("#buttonGetReport").click(AffiliateReportsUI.ReportButtonClicked);
            $("#buttonExportReport").click(AffiliateReportsUI.ExportReportButtonClicked);
            AffiliateReportsUI.ReportSelectionChanged();
        }

        //campaigns
        $("#tblCampaignIndex").find("a").click(function(e) { e.preventDefault(); return false; });
        $("#tblCampaignIndex").find("a").click(affiliateCampaignUI.DisplayCampaign);
        //hover(function() { $(this).css("backgroundColor","blue")});



//        if ($("#Sec-content-body > a").length > 0) {
//            $("#Sec-content-body > * ").click(function(e) {
//                e.preventDefault();
//                return false;
//            });
//        }

        if ($("#buttonCreateCampaign").length > 0) {
            $("p#camp-show-help").click(function() {
                $("div#Campaign-help").slideToggle("slow");
            });
            $("p#report-help").click(function() {
                $("div#report-content").slideToggle("slow");
            });

            $("#selectCampaignBrand").change(affiliateCampaignUI.selectBoxCampaignBrandChanged);
            $("#buttonCreateCampaign").click(affiliateCampaignUI.NewCampaignButtonClicked);
        }

        //media library
        if ($("#menu-left").length > 0) {
            $("#menu-left").accordion({ header: "h1" });
            $("#menu-left a").click(function() {
                var title = $(this).text();
                $("#inputSearch").val(title);
                document.forms[0].submit();
            });
        }

        //my account
        if ($("#buttonUpdateAccount").length > 0) {
            $("#buttonUpdateAccount").click(affiliateAccountUI.AccountUpdateDetailsButtonClicked);
            $("#selectPaymentType").click(affiliateAccountUI.selectBoxPaymentChanged);
            $("#selectCountry").click(affiliateAccountUI.selectBoxCountryChanged);

            //set the payment details to the saved selection
            //var selectIndex = $("inputPaymentTypeID").val();
            //$("#selectPaymentType option:eq(" + selectIndex + ")");
            affiliateAccountUI.selectBoxCountryChanged();
            affiliateAccountUI.selectBoxPaymentChanged();
        }
        if ($(".btnAccountPaymentSubmit").length > 0) {
            $(".btnAccountPaymentSubmit").click(affiliateAccountUI.AccountUpdatePaymentDetailsButtonClicked);
        }

        //site reviews
        //alert($("#selectsitereview option:selected").text());
        if ($("#selectsitereview option:selected").text() != "0") {
            //alert($("#selectsitereview option:selected").text());
            //$("#selectsitereview").change(selectSiteReviewChange);
        }
        affiliateAccountUI.SelectedLeftNav();

        /*************reset password************/
        if ($("#buttonResetPassword").length > 0) {
            $("input[name='password']").passStrength({ userid: "input[name='confirmPassword']" });
        }
        
    }
);
        
/*************************** VALIDATION CLASS ****************************/
function UiValidationClass(){

    this.error = function(control){
       
        //CLEAR ALL VALIDATION FORMATTING FROM CONTROLS
        $("form > :not(:button").css({'border':''});
        $("#" + control).focus()
        .css({'border': 'solid 2px red'});
    }
    
    this.success = function(control){
    
         $("#" + control).css({'border': 'none'});
    
    }

}

//*************************SPINNER CONTROL********************************
function UiSpinnerClass(){

    var spinnerCanHide = false;
    var spinnerTimedOut = false;

    this.ShowSpinner = function() {

    var DocH = $(document).height();
        
        $(".spinner").show().animate({ backgroundColor: "#333", opacity: .9 }, 500);
        $(document).scrollTop(0);
        if ($(".actualSpin").length === 0) {

            $(".spinner").height(DocH+"px").append("<div class='actualSpin'><img src='../images/loader.gif' /></div>");
        }

        setTimeout(function() {
            spinnerTimedOut = true;

            if (spinnerCanHide) {
                $(".spinner").fadeOut(500);
                spinnerTimedOut = false;
                spinnerCanHide = false;
            }
        }, 2000);
    }

    this.HideSpinner = function() {

        spinnerCanHide = true;

        if (spinnerTimedOut) {
            $(".spinner").fadeOut(500);
            spinnerTimedOut = false;
            spinnerCanHide = false;
        }
    }


    this.Abort = function() {
        $(".spinner").fadeOut(10);
    }
}

// ************************DIALOG BOX CLASS********************************
function DialogBoxClass(){

    this.InPageMessages = function(divId, message) {
    $(".divMessageBox")
        .addClass("dims")
        .fadeIn("slow")
        .css("border", "1px dotted #cc0000")
        .empty()
        .append("<span class='ui-icon ui-icon-alert iconfloat'></span><span class='pPadding'>" + message + "</span>" ); 
    }

    this.validationErrorMessage = function(message) {

        spinner.Abort();  //IF THE SPINNER IS VISIBLE HIDE IT BEFORE DISPLAYING THE DIALOG

        //CREATE DIALOG BOX, REMOVE ANY PREVOUS CONTENT FROM THE DIALOG DIV.  ADD AN OK BUTTON WHICH DESTROYS THE DIALOG BOX WHEN CLICKED
        $("#divDialogBox").dialog({
            beforeclose: function(event, ui) { EmptyDialog(); },
            buttons: { "Ok": function() { $(this).dialog("destroy"); EmptyDialog(); } },
            modal: true,
            title: errorMessages["ValidationErrorTitle"]
        });
        $("#dialogContent").append(message); //ADD MESSAGE TO DIALOG BOX
        $("#divDialogBox").dialog('open');

        function EmptyDialog() {
            $("#divDialogBox > *").remove();
        }
    }

    this.UserInformation = function(message, action, title) {

        spinner.HideSpinner();  //IF THE SPINNER IS VISIBLE HIDE IT BEFORE DISPLAYING THE DIALOG

        if (title === null) {
            title = "";
        }
        else {
            title = errorMessages["UserInformationTitle"];
        }
        //CREATE DIALOG BOX, REMOVE ANY PREVOUS CONTENT FROM THE DIALOG DIV.  ADD AN OK BUTTON WHICH DESTROYS THE DIALOG BOX WHEN CLICKED
        $("#divDialogBox").remove()
                          .dialog({ buttons:
                          {
                              "Ok": function() {
                                    $(this).dialog("destroy");
                                    $("#divDialogBox > *").empty();
                                    
                                    if (action)
                                        self.parent.location = action;
                              }
                          },
                              modal: true,
                              title: title
                          });
        $("#dialogContent").append(message); //ADD MESSAGE TO DIALOG BOX
        $("#divDialogBox").dialog('open');
    }
    
    this.AjaxServerError = function(){
        
        spinner.HideSpinner();  //IF THE SPINNER IS VISIBLE HIDE IT BEFORE DISPLAYING THE DIALOG
            
        //CREATE DIALOG BOX, REMOVE ANY PREVOUS CONTENT FROM THE DIALOG DIV.  ADD AN OK BUTTON WHICH DESTROYS THE DIALOG BOX WHEN CLICKED
        $("#divDialogBox").dialog({ buttons: { "Ok": function() { $(this).dialog("destroy"); $("#divDialogBox > *").empty();} }, 
                                    modal: true,
                                    title: errorMessages["ServerErrorTitle"]});
        $("#dialogContent").append(errorMessages["ServerErrorMessage"]); //ADD MESSAGE TO DIALOG BOX
        $("#divDialogBox").dialog('open');           
    }
    
    this.SessionTimeOut = function(){
        
        spinner.HideSpinner();  //IF THE SPINNER IS VISIBLE HIDE IT BEFORE DISPLAYING THE DIALOG
            
        //CREATE DIALOG BOX, REMOVE ANY PREVOUS CONTENT FROM THE DIALOG DIV.  ADD AN OK BUTTON WHICH DESTROYS THE DIALOG BOX WHEN CLICKED
        $("#divDialogBox").dialog({ buttons: { "Ok": function() { $(this).dialog("destroy"); $("#divDialogBox > *").empty(); self.parent.location = "login/";} }, 
                                    modal: true,
                                    title: errorMessages["SessionTimeOutErrorMessageTitle"]});
        $("#dialogContent").append(errorMessages["SessionTimeOutErrorMessage"]); //ADD MESSAGE TO DIALOG BOX
        $("#divDialogBox").dialog('open');           
    }
}
// ************************ LOGIN - 2**********************
function AffiliateLoginUiClass(){

    this.LoginValidationError = function(validationErrors, formControl){
   //CYCLES THROUGH ALL VALIDATION ERRORS AND TESTS WHICH ONES HAVE OCCURED
        for(var i = 0; i < 7; i++){
            switch(validationErrors[i]){
                case 1: {
                    if(formControl === "inputLogin"){
                        this.message = errorMessages["LoginErrorMissingIdPassword"];}
                    if(formControl === "inputPassword"){
                        this.message = errorMessages["LoginErrorMissingPassword"];}
                    if(formControl === "affID"){
                        this.message = errorMessages["ForgotPasswordMissingId"];}
                    if(formControl === "affEmail"){
                        this.message = errorMessages["ForgotPasswordMissingEmail"];}
                    break;
                }
                case 2: {}
                case 3: {}
                case 4: {
                    if(formControl === "affEmail"){
                        this.message = errorMessages["ForgotPasswordBadEmail"];}
                    break;
                }
                case 5: {}
                case 6: {}
            }
        }
            uivalidation.error(formControl);
            dialogBox.InPageMessages("#divMessageBox", this.message); //DIPLAYS ALL VALIDATION ERRORS
    }
    
    this.ResetPasswordValidationError = function(validationErrors, formControl){
        this.message = undefined;
        //CYCLES THROUGH ALL VALIDATION ERRORS AND TESTS WHICH ONES HAVE OCCURED
        for(var i = 0; i <= 7; i++){
            switch(validationErrors[i]){
                case 1: {
                    if(formControl === "newPassword"){
                        this.message = errorMessages["ForgotPasswordMissingNewPassword"];}
                    if(formControl === "newPasswordConfirmed"){
                        this.message = errorMessages["ForgotPasswordMissingConfirmPassword"];}
                    break;
                }
                case 7: {
                    this.message = errorMessages["ForgotPasswordMissMatch"]
                    break;
                }
            }
        }
            uivalidation.error(formControl);
            dialogBox.InPageMessages("#divMessageBox", this.message); //DIPLAYS ALL VALIDATION ERRORS
    }

    this.LoginButtonClicked = function() {
        //LOGIN VALIDATION
        validation.valid = true;
        validation.ValidateFields(affiliateLoginUi.LoginValidationError, "inputLogin", true, false, false, false, false, false);
        validation.ValidateFields(affiliateLoginUi.LoginValidationError, "inputPassword", true, false, false, false, false, false);
        if (validation.valid === true) {
        $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
            spinner.ShowSpinner(); //DISPLAY SPINNER
            login.LogUserIn("formLogin");
        }
    }
    
    this.DisplayAffiliateLoginResult = function(data){
    
        this.message = undefined;
        
        if(data === SessionEnum.SessionTimeOut){
            dialogBox.SessionTimeOut();
        }
        else if(data.Successful){//USER IS CLEARED TO LOG IN
        self.parent.location = data.RedirectURL ; //;"/login"
            spinner.HideSpinner();
        }
        else{//USER HAS FAILED LOGIN CHECK, DISPLAY ERROR MESSAGE BASED ON ENUM
            switch(data.accountState){
                case 0:{
                    this.message = errorMessages["LoginErrorIdPasswordIncorrect"];
                    break;
                }
                case -1:{
                    this.message = errorMessages["LoginErrorAccountLocked"];
                    break;
                }
                case -2:{
                    break;  
                }
                case -3:{
                    break;
                }
                case -4:{
                    break;
                }
                case -5:{
                    this.message = errorMessages["LoginErrorIdPasswordIncorrect"];
                    break;
                }
            }
            spinner.HideSpinner();
            dialogBox.UserInformation(this.message); //DIPLAYS ALL VALIDATION ERRORS
        }
    }
    
    this.AjaxLoginResult = function(data, textStatus){
             
        if(data === SessionEnum.SessionTimeOut){
            dialogBox.SessionTimeOut();
        }        
        else if(data === ajaxErrorEnum.ServerError){
            dialogBox.AjaxServerError();
        }
        else if(data != false){//SERVER RESPONDED OK
            affiliateLoginUi.DisplayAffiliateLoginResult(data);            
        }
        else{//SERVER ERROR
            dialogBox.AjaxServerError();
        }
    }
    
    this.AjaxRequestPasswordResponse = function(data, textStatus){
        
        spinner.HideSpinner();
        if(data === SessionEnum.SessionTimeOut){
            dialogBox.SessionTimeOut();
        }
        else if(data.Successful){
        dialogBox.UserInformation(errorMessages["ResetPasswordEmailNotification"], "/");
        }
        else if(data.Successful === false){
            dialogBox.validationErrorMessage(errorMessages["ResetPasswordError"]);
        }
        else if(data === ajaxErrorEnum.ServerError){
            dialogBox.AjaxServerError();
        }
    }

    this.AjaxResetPasswordResponse = function(data, textStatus){
        
        spinner.HideSpinner();
        
        if(data === SessionEnum.SessionTimeOut){
            dialogBox.SessionTimeOut();
        }
        if(data === ajaxErrorEnum.ServerError){
            dialogBox.AjaxServerError();
        }
        else if(data.Successful === true){
            dialogBox.UserInformation(errorMessages["ResetPasswordResetSuccessfull"], data.RedirectURL);
        }
        else{
            dialogBox.UserInformation(errorMessages["ResetPasswordExpired"], data.RedirectURL);
        }
    }

    this.RequstPasswordButtonClicked = function(){   
        //VALIDATION
        validation.valid = true;
        validation.ValidateFields(affiliateLoginUi.LoginValidationError,"affID",true, false, false, false,false,false);
        validation.ValidateFields(affiliateLoginUi.LoginValidationError,"affEmail",true,false,false,true,false,false);
        if(validation.valid){//VALIDATION SUCCESSFUL FIRE EVENT
            $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
            spinner.ShowSpinner(); //DISPLAY SPINNER
            login.requestFogottenPassword("formForgot");
        }
    }

    this.ResetPasswordButtonClicked = function() {
        //VALIDATION
        validation.valid = true;
        validation.ValidateFields(affiliateLoginUi.ResetPasswordValidationError, "newPassword", true, false, false, false, false, false);
        validation.ValidateFields(affiliateLoginUi.ResetPasswordValidationError, "newPasswordConfirmed", true, false, false, false, false, false);
        validation.FieldsEqual(affiliateLoginUi.ResetPasswordValidationError, "newPassword", "newPassword", "newPasswordConfirmed");
        if (validation.valid === true) { //VALIDATION SUCCESSFUL
            $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
            spinner.ShowSpinner(); //DISPLAY SPINNER
            login.ResetPassword("formReset");
        }


    }
    this.LoginToolTip = function() {
            
            // setup tooltip for a single DIV element
            $("#inputRemember, #resetPasswordNotice").tooltip({

                offset:[145, 0],
                // each trashcan image works as a trigger
                tip: '#tooltip',

                // do not initialize tooltips until they are used
                lazy: true,

                // there is no delay when the mouse is moved away from the trigger
                delay: 0
            });
        }
        this.ForgotPassword = function() {
            $("#Loginforgot > a").click(preventDefault);
            $("#Loginforgot > #resetPasswordNotice").click(function() {
                $("#login > form > *").attr("disabled", "disabled");
                $("#login > form").animate({ 'opacity': '0.3' });
                $("#ForgotenPasswordReset").fadeIn(1500).css({ 'backgroundColor': '#f1f1f1', 'display': 'block' });
                $("#ForgotenPasswordReset > form > input:eq(0)").focus();
            });
            $("#ReturnToLogin").click(function() {
                $("#login > form > *").removeAttr("disabled");
                $("#login > form").animate({ 'opacity': '1' });
                $("form > input:eq(0)").focus();
                $("#ForgotenPasswordReset").fadeOut(500).css({ 'backgroundColor': '#f1f1f1' });
            });

        }
}
// ********************** SIGNUP - 3 **********************
//
function AffiliateSignUpUiClass(){

    this.SignUpValidation = function(validationErrors, formControl){
        
        this.message = undefined;
        
        for(var i = 0; i <= 7; i++){
            switch(validationErrors[i]){
                case 1: {
                    if(formControl === "inputEmail"){
                        this.message = errorMessages["SignupMissingEmail"];}
                    if(formControl === "inputPassword"){
                        this.message = errorMessages["SignupMissingPassword"];}
                    if(formControl === "inputFirstName"){
                        this.message = errorMessages["SignupMissingFirstName"];}
                    if(formControl === "inputLastName"){
                        this.message = errorMessages["SignupMissingLastName"];}
                    if(formControl === "inputPhone"){
                        this.message = errorMessages["SignupMissingPhoneNumber"];}
                    break;
                }
                case 2: {}
                case 3: {}
                case 4: {
                    if(formControl === "inputEmail"){
                        this.message = errorMessages["SignupBadEmail"];}
                    break;
                }
                case 5: {}
                case 6: {}
                case 7: {}
            }
        }
            uivalidation.error(formControl);
            dialogBox.InPageMessages("#divMessageBox", this.message); //DIPLAYS ALL VALIDATION ERRORS
    }

    this.AjaxSignUpAffiliateResponse = function(data, textStatus){
    
        if(data === SessionEnum.SessionTimeOut){
            dialogBox.SessionTimeOut();
        }
        else{
            spinner.HideSpinner(); //HIDE SPINNER
        
            if(data === ajaxErrorEnum.ServerError){
                dialogBox.AjaxServerError();
            }
            else{
                affiliateSignUpUi.SignUpUiRederect(data, textStatus);
            }
        }
    }

    this.SignupButtonClicked = function(){
        
        validation.valid = true;
        validation.ValidateFields(affiliateSignUpUi.SignUpValidation, "inputEmail",true,false,false,true,false,false);
        validation.ValidateFields(affiliateSignUpUi.SignUpValidation, "inputPassword",true,false,false,false,false,false);
        validation.ValidateFields(affiliateSignUpUi.SignUpValidation, "inputFirstName",true, true,false,false,false,false);
        validation.ValidateFields(affiliateSignUpUi.SignUpValidation, "inputLastName",true, true,false, false,false,false);
        validation.ValidateFields(affiliateSignUpUi.SignUpValidation, "inputPhone",true,false,false,false,false,false);
        if(validation.valid){ 
            $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
            spinner.ShowSpinner(); //SHOW SPINNER
            SignUp.SignUpAffiliate("formSignup");
        }
    }
    
    this.SignUpUiRederect = function(data, textStatus){
        
        if(data === SessionEnum.SessionTimeOut){
            dialogBox.SessionTimeOut();
        }
        else{
            spinner.HideSpinner();
            
            if (data == true){//SIGNUP SUCCESS
                self.parent.location = "/signup/successful";}
            else{//SIGNUP FAILED
                self.parent.location = "/signup/unsuccessful";}
            }
    }

    this.SignUpRadioButtonChanged = function(){
        var value = $("input[name='inputAffiliateType']:checked").val();
        
        if ($("input[name='inputAffiliateType']:checked").val() == "3")
            $("#divAffiliateURL").show();
        else
            $("#divAffiliateURL").hide();
    }

    this.SignUpcheckBoxClicked = function(){
        if ($("#inputCheckbox").is(":checked"))
        {
            $("#buttonSignup").removeAttr("disabled");
        }
        else
           $("#buttonSignup").attr("disabled", "disabled");
    }
}
/************************ DASHBOARD ************************/
function AffiliateDashBoardClass() {

    this.TableScr = function() {
        //SHANS JAZ NOW PLAYING!! BRING YOUR OWN EAR PLGS
        var Vwidth = $("#currentOffer").width();
        var position = 0;
        var tblinW = $("table.offers").width();
        var maxPosition = Math.floor($("table.offers").width() / $("#currentOffer").width());
        var lastScreenRemainder = ($("table.offers").width() / $("#currentOffer").width()) - (Math.floor($("table.offers").width() / $("#currentOffer").width()));

        $("#currentOffersBrands").css("overflow-x", "hidden");
        
        $("#currentOfferHead > #buttonP").attr("disabled", "disabled");

        //$("#answer").text(+tblinW + "viewport: " + Vwidth + "ScrRemainder " + lastScreenRemainder + " position: " + position + " " + "maxPosition" + maxPosition);

        $("#currentOfferHead > #buttonN").click(function() {

            if (position < maxPosition - 1) {
                $("#currentOffersBrands").animate({ left: "-=" + Vwidth }, function() {
                if (position > 0) 
                    {
                        $("#currentOfferHead > #buttonP").removeAttr("disabled"); 
                    } });
            }
            else if (position == maxPosition - 1) {
            $("#currentOffersBrands").animate({ left: "-=" + Vwidth * lastScreenRemainder }, function() {
                if (position === maxPosition) 
                    {
                        $("#buttonN").attr("disabled", "disabled");
                    }});
                }
            position++;

            $("#answer").text("viewport: " + Vwidth + "position: " + position + " " + "maxPosition" + maxPosition);
        });

        $("#buttonP").click(function() {
            if ((position > 0) && (position != maxPosition)) {
                $("#currentOffersBrands").animate({ left: "+=" + Vwidth }, function() {

                    if (position === 0) {
                        $("#buttonN").removeAttr("disabled");
                        $("#buttonP").attr("disabled", "disabled");
                    }
                });
            }
            else if (position == maxPosition) {
                $("#currentOffersBrands").animate({ left: "+=" + Vwidth * lastScreenRemainder });
            }

            position--;
            $("#answer").text("position: " + position + " " + "maxPosition" + maxPosition);
        });
    }

    this.DashTooltip = function() {

//        var tblData = $("tr.rowOffer > td.BrandOffer").siblings();

//        tblData.click(function() {
//            $(this).addClass("greenTableRowHighlight").css("background", "green");
//            
//        });
        $("table.offers > tbody > tr.rowOffer > td.BrandOffer").click(function() {
            $(this).addClass("greenTableRowHighlight").css("background", "green");
            $(this).siblings().addClass("greenTableRowHighlight").css("background", "green");

        });

        //        $("table.offers > tbody > tr.rowOffer > td.BrandOffer").mouseout(function() {

        //            $(this).removeClass("greenTableRowHighlight").css("background", "#3b3b3b");
        //            $(this).siblings().removeClass("greenTableRowHighlight").css("background", "#3b3b3b");
        //        });

        ////////////////////
    // setup tooltip for a single DIV element
    $(".offers td[title]").tooltip({

        // each trashcan image works as a trigger
        tip: '#tooltip',

        // custom positioning
        //position: 'center right',
        
        // move tooltip a little bit to the right
        //offset: [0, 15],

        // do not initialize tooltips until they are used
        lazy: true,

        // there is no delay when the mouse is moved away from the trigger
        delay: 0
    });

        /////////////////////

    }
}
// ********************** REPORTS - 4 **********************

function AffiliateReportsUIClass(){

    
    this.ReportValidationResponse = function(validationErrors, formControl){
        
        this.message = undefined;
        for(var i = 0; i <= 7; i++){
            switch(validationErrors[i]){
                case 1: {
                    if(formControl === "dateFrom"){
                        this.message = errorMessages["ReportsMissingFromDate"];}
                    if(formControl === "dateTo"){
                        this.message = errorMessages["ReportsMissingToDate"];}
                    break;
                }
                
            }
        }
            uivalidation.error(formControl);
            dialogBox.InPageMessages("#divMessageBox", this.message); //DIPLAYS ALL VALIDATION ERRORS 
    }

    this.ValidateReportSelection = function(){
        validation.valid = true;
        validation.ValidateFields(AffiliateReportsUI.ReportValidationResponse, "selectReport", true, false,false,false,false,false);
        validation.ValidateFields(AffiliateReportsUI.ReportValidationResponse, "dateFrom", true,false,false,false,false,false);
        validation.ValidateFields(AffiliateReportsUI.ReportValidationResponse, "dateTo", true,false,false,false,false,false);
    }

    this.ReportButtonClicked = function() {
        AffiliateReportsUI.ValidateReportSelection();
        if (validation.valid === true) {
            $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
            spinner.ShowSpinner(); //SHOW SPINNER
            if ($("#tableReportReferURL").length === 0) {
                Reports.GetReport("formReports");
            }
            else {
                $("#tableReportReferURL").remove();
                Reports.GetReport("formReports");
            }
            $("#divMessageBox").hide();
        }
    }
    
    this.ExportReportButtonClicked = function(){ 
        validation.valid = true;
        AffiliateReportsUI.ValidateReportSelection();
        if (validation.valid) {
            $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
            $("#formReports").attr('action', '/reports/export/');
            $("#formReports").unbind("submit", preventDefault);
            $("#formReports").submit();
            $("#formReports").bind("submit", preventDefault);
            //Reports.ExportReport("formReports");
        }
    }

    this.AjaxReportResponse = function(data, textStatus) {

        if(parseInt(data) === SessionEnum.SessionTimeOut){
            dialogBox.SessionTimeOut();
        }
        else{
            spinner.HideSpinner(); //HIDE SPINNER

            if (data === ajaxErrorEnum.ServerError) {
                dialogBox.AjaxServerError();
            }
            if (data.length === 0) {
                $("#tableReportDemographic, #tableReportFinancial, #tableFinanceAddendumReport, #tableReportPaymentSchedule").remove();
                $("#Reports").after(data); 
            }
            else {
                $("#tableReportDemographic, #tableReportFinancial, #tableFinanceAddendumReport, #tableReportPaymentSchedule").remove();
                $("#Reports").after(data);
            }
        }
    }
    
    this.AjaxExportReportResponse = function(data, textStatus){
        if(data === SessionEnum.SessionTimeOut){
            dialogBox.SessionTimeOut();
        }
        else if(data === ajaxErrorEnum.ServerError){
//            ajaxErrorMessage.AjaxError();
        }
        else{
            //NO RESPONSE BROWSER OUTPUTS A CSV FILE
        }
    }
    
    this.ReportSelectionChanged = function(){
        //currentTable = null;
        
        switch ($("#selectReport").val()) 
        {
            case "demographics":
            {
                $("table").hide();
                $("#tableReportDemographic").show();
                
                
                break;                        
            }
            
            case "financials":
            {
                $("table").hide();
                $("#tableReportFinancial").show();                        
                break;                        
            }
            
            case "games":
            {
                $("table").hide();
                $("#tableReportGames").show();
            }
            
            case "referurl":
            {
                $("table").hide();
                $("#tableReportReferURL").show();	
                break;                        
            } 
            
            case "payments":
            {
                $("table").hide();
                $("#tableReportReferURL").show();	
                break;                        
            }                                                                    
         }    
    }
}
//
// ********************** CAMPAIGNS - 5 *********************
//
function affiliateCampaignUIClass(){

    this.CampaignValidationResponse = function(validationErrors, formControl){
   
        for(var i = 0; i <= 7; i++){
            switch(validationErrors[i]){
                case 1: {
                    if(formControl === "inputCampaignName"){
                        this.message = errorMessages["CampaignMissingName"];}
                    if(formControl === "selectCampaignBrand"){
                        this.message = errorMessages["CampaignMissingBrand"];}
                    break;
                }
                
            }
        }
            uivalidation.error(formControl);
            dialogBox.InPageMessages("#divMessageBox", this.message); //DIPLAYS ALL VALIDATION ERRORS
    }
    
    this.AjaxAddCampaignResponse = function(data, textStatus){
    
        if(data === SessionEnum.SessionTimeOut){
            dialogBox.SessionTimeOut();
        }
        else if(data === ajaxErrorEnum.ServerError){
            spinner.HideSpinner();
            dialogBox.AjaxServerError();
        }
        else if(data.length > 0){
            //REMOVE USER INPUT FROM CAMPAIGN NAME AND DROPDOWN BOXES
            $("#inputCampaignName").attr({value:""});
            $("#selectCampaignBrand").attr({value:""});
            $("#selectCampaignBrandLanguage").attr({value:""});
            
            //POPULATE CAMPAIGN DATA WITH THE NEW CAMPAIGN
            $("#tbodyCampaigns > *").remove(); //remove all table data
            
            for(var i = 0; i < data.length; i++){ //Adds all the campaign data back to the table
                $("#tbodyCampaigns").append(
                "<tr><td>" + data[i].Name + "</td><td>" + data[i].ID +
                "</td><td>" + data[i].URL + "</td><td>" + data[i].Metric + " unique actives" +
                "</td><td>" + data[i].DateCreated + "</td></tr>");
            }
            spinner.HideSpinner();
            dialogBox.InPageMessages("#divMessageBox", errorMessages["CampaignCreated"]); //DIPLAYS ALL VALIDATION ERRORS
        }
        else{
            dialogBox.validationErrorMessage(errorMessages["CampaignError"]);
        }
    }
    
    this.NewCampaignButtonClicked = function(){
    
        //VALIDATION
        validation.valid = true;
        validation.ValidateFields(affiliateCampaignUI.CampaignValidationResponse, "inputCampaignName", true,false,false,false,false,false);
        validation.ValidateFields(affiliateCampaignUI.CampaignValidationResponse, "selectCampaignBrand", true,false,false,false,false,false);
        validation.ValidateFields(affiliateCampaignUI.CampaignValidationResponse, "selectCampaignBrandLanguage", true,false,false,false,false,false);
        if(validation.valid){
            $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
            spinner.ShowSpinner(); //SHOW SPINNER
            Campaign.CreateCampaign("formCampaign");
        }
    }
    this.CampaignDetailBox = function(data, textStatus) {
        if (data === SessionEnum.SessionTimeOut) {
            dialogBox.SessionTimeOut();
        }
        else if (data[0].length === 0) {
            dialogBox.UserInformation(errorMessages["CampaignNoData"]);
        }
        else {
            var DocH = $(document).height();
            $(".spinner").height(DocH + "px").show().animate({ backgroundColor: "#333", opacity: 1 }, 1000);
            $(document).scrollTop(0);

            //show  detail campaing in lightbox:
            if (data.length === 0) {

                dialogBox.InPageMessages("#divMessageBox", this.message);
            }
            else {
                $(".spinner").css("opacity", "1").append("<div class='CampaignReportsResults'>" +
				    "<div class='CampaignResultsHeader'>" +
				    "<div class='icon2'></div><h2>detail for campaign: " + data[0][0].Name + "</h2></div>" +
				    "<table class='campaignTable' cellpadding='5' cellspacing='0' style='margin:auto;background:#fff'>" +
				    "<thead>" +
					    "<tr>" +
						    "<th style='text-align:left;'>Date </th>" +
						    "<th style='text-align:left;'>Brand</th>" +
						    "<th style='text-align:left;'>Country</th>" +
						    "<th style='text-align:right;'>Opens</th>" +
						    "<th style='text-align:right;'>Actives</th>" +
						    "<th style='text-align:right;'>BREs</th>" +
						    "<th style='text-align:right;'>Closes</th>" +
					    "</tr>" +
				    "</thead>" +
				    "<tbody id='tbodyAjaxCampaigns'>" +
				    "</tbody>" +
				    "<tfoot id='campaignTotals'>" +
				    "</tfoot>" +
			    "</table>" +
			    "</div>");

                for (var i = 0; i < data[0].length; i++) {
                    $("#tbodyAjaxCampaigns").css("background", "white");
                    $("#tbodyAjaxCampaigns").append("<tr>" +
										    "<td style='text-align:left;'>" + data[0][i].Brand + "</td>" +
										    "<td style='text-align:left;'>" + data[0][i].Date + "</td>" +
										    "<td style='text-align:left;'>" + data[0][i].Country + "</td>" +
										    "<td style='text-align:right;'>" + data[0][i].Opens + "</td>" +
										    "<td style='text-align:right;'>" + data[0][i].Actives + "</td>" +
										    "<td style='text-align:right;'>" + data[0][i].BREs + "</td>" +
										    "<td style='text-align:right;'>" + data[0][i].Closes + "</td>" +
									    "</tr>");
                }
                $("#campaignTotals").append("<tr>" +
		        "<td>Totals</td>" +
		        "<td></td>" +
		        "<td></td>" +
		        "<td style='text-align:right;'>" + data[1].Opens + "</td>" +
		        "<td style='text-align:right;'>" + data[1].Actives + "</td>" +
		        "<td style='text-align:right;'>" + data[1].BREs + "</td>" +
		        "<td style='text-align:right;'>" + data[1].Closes + "</td>" +
		    "</tr>");
                var tblHeight = $("#tbodyAjaxCampaigns").height();
                if (DocH < tblHeight) {
                    $(".spinner").height(tblHeight + "px");
                    $("body").height(tblHeight + "px");
                }
                else {
                    $(".spinner").height(DocH + "px").show().animate({ backgroundColor: "#333", opacity: 1 }, 1000);
                }
                $(".icon2").click(function() {
                    
                    $("#campaignTotals").fadeOut("slow").remove();
                    $("#tbodyAjaxCampaigns").fadeOut("slow").remove();
                    $(".campaignTable").fadeOut("slow").remove();
                    $(".CampaignResultsHeader").fadeOut("slow").remove();
                    $(".spinner").fadeOut("slow");


                });
            }

        }
    }
    this.DisplayCampaign = function() {
        Campaign.AjaxCampaignDetail($(this).attr("href"), affiliateCampaignUI.CampaignDetailBox);
    }
    //end  campaign detial in lightbox

    this. selectBoxCampaignBrandChanged = function(){
        $("#selectCampaignBrandLanguage").empty();
            
        switch ($("#selectCampaignBrand").val()) 
        {
            case "CHP":
            {
                $("#selectCampaignBrandLanguage").append("<option value=\"en\">English</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"da\">Danish</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"fr\">French</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"de\">German</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"it\">Italian</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"no\">Norwegian</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"es\">Spanish</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"sv\">Swedish</option>");
                
                break;
            }
            
            case "GCC":
            {
                $("#selectCampaignBrandLanguage").append("<option value=\"en\">English</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"fr\">French</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"de\">German</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"it\">Italian</option>");            
                $("#selectCampaignBrandLanguage").append("<option value=\"es\">Spanish</option>");
                        
                break;
            }
            
            case "JPC":
            {
                $("#selectCampaignBrandLanguage").append("<option value=\"en\">English</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"da\">Danish</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"nl\">Dutch</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"fr\">French</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"de\">German</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"el\">Greek</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"it\">Italian</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"ja\">Japanese</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"no\">Norwegian</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"pl\">Polish</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"pt\">Portuguese</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"no\">Norwegian</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"es\">Spanish</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"sv\">Swedish</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"tr\">Turkish</option>");
                
                break;
            }
            
            case "JPB":
            {
                $("#selectCampaignBrandLanguage").append("<option value=\"en\">English</option>");
                
                break;
            }
            
            case "JPM":
            {
                $("#selectCampaignBrandLanguage").append("<option value=\"en\">English</option>");
                
                break;
            }        
            
            case "KNC":
            {
                $("#selectCampaignBrandLanguage").append("<option value=\"en\">English</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"ja\">Japanese</option>");
                        
                break;
            }
            
            case "LNC":
            {
                $("#selectCampaignBrandLanguage").append("<option value=\"en\">English</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"fr\">French</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"de\">German</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"it\">Italian</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"es\">Spanish</option>");
                        
                break;
            }
            
            case "RBC":
            {
                $("#selectCampaignBrandLanguage").append("<option value=\"en\">English</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"nl\">Dutch</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"fr\">French</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"de\">German</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"it\">Italian</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"es\">Spanish</option>");
                $("#selectCampaignBrandLanguage").append("<option value=\"tr\">Turkish</option>");
                        
                break;
            }    
        }
    }
}

// ********************** MY ACCOUNT - 6 *********************

function AffiliateAccountUIClass(){

    this.DetailsValidation = function(validationErrors, formControl){
   //CYCLES THROUGH ALL VALIDATION ERRORS AND TESTS WHICH ONES HAVE OCCURED
        for(var i = 0; i < 7; i++){
            switch(validationErrors[i]){
                case 1: {
                    if(formControl === "inputFirstName"){
                        this.message = errorMessages["MyAccountDetailsMissingFirstName"];
                        break;
                    }
                    if(formControl === "inputLastName"){
                        this.message = errorMessages["MyAccountDetailsMissingLastName"];
                        break;
                    }
                    if(formControl === "inputEmail"){
                        this.message = errorMessages["MyAccountDetailsMissingEmail"];
                        break;
                    }
                    if(formControl === "inputPhone"){
                        this.message = errorMessages["MyAccountDetailsMissingPhoneNumber"];
                        break;
                    }
                    if(formControl === "inputAddress1"){
                        this.message = errorMessages["MyAccountDetailsMissingAddress1"];
                        break;
                    }
                    if(formControl === "inputAddressState"){
                        this.message = errorMessages["MyAccountDetailsMissingState"];
                        break;
                    }
                    if(formControl === "inputAddressZip"){
                        this.message = errorMessages["MyAccountDetailsMissingZip"];
                        break;
                    }
                }
                
                case 4: {
                    if(formControl === "inputEmail"){
                        this.message = errorMessages["MyAccountDetailsBadEmail"];}
                        break;
                }
                
            }
        }
            uivalidation.error(formControl);
            dialogBox.InPageMessages("#divMessageBox", this.message); //DIPLAYS ALL VALIDATION ERRORS
    }

    this.SelectedLeftNav = function() {

        $("ul.ItemsHolder > li > a").click(function() {
            $("ul.ItemsHolder > li").removeClass("leftNavSelected");
            $(this).parent().addClass("leftNavSelected");
        });
    }
    
    this.AccountPaymentDetailValidationError = function(validationErrors, formControl){
    //THIS DISPLAYS THE ERROR MESSAGES FOR PAYMENT UPDATES    
        var message = "";
        
        switch($("#selectPaymentType option:selected").val()){
            
                case "Check" :{
                    if(formControl === "inputPaymentCheckPayeeName"){
                        
                        var accountValidationMessages = {1:errorMessages["MyAccountCheckMissingPayeeName"]
                        };
                    }
                    break;
                }    
                
                case "Click2Pay" :{
                    if(formControl === "inputPaymentClick2PayPayeeName"){
                       var accountValidationMessages = {1:errorMessages["MyAccountClick2PayMissingPayeeName"]};
                    }
                    if(formControl === "inputPaymentClick2PayEmail"){
                       var accountValidationMessages = {1:errorMessages["MyAccountClick2PayMissingEmail"],
                        2:"",
                        3:"",
                        4:errorMessages["MyAccountClick2PayBadEmail"],
                        5:"",
                        6:""}; 
                    }
                    if(formControl === "inputPaymentClick2PayPAN"){
                       
                       var accountValidationMessages = {1:errorMessages["MyAccountClick2PayMissingPaymentAccountNumber"]};
                    }

                    break;
                }
                
                case "EcoCard" :{
                    if(formControl === "inputPaymentEcoCardName"){
                        var accountValidationMessages = {1:errorMessages["MyAccountEcocardMissingName"]};
                    }
                    if(formControl === "inputPaymentEcoCardSurname"){
                        var accountValidationMessages = {1:errorMessages["MyAccountEcocardMissingSurname"]};
                    }
                    if(formControl === "inputPaymentEcoCardEmail"){
                        var accountValidationMessages = {1:errorMessages["MyAccountEcocardMissingEmail"],
                        4:errorMessages["MyAccountEcocardBadEmail"]};
                    }
                    if(formControl === "inputPaymentEcoCardAccountNumber"){
                        var accountValidationMessages = {1:errorMessages["MyAccountEcocardMissingAccountNumber"]};
                    }
                    if(formControl === "inputPaymentEcoCardPayeeName"){
                        var accountValidationMessages = {1:errorMessages["MyAccountEcocardMissingPayeeName"]};
                    }

                    break;
                }
                case "Neteller" :{
                    if(formControl === "inputPaymentNetellerID"){
                        var accountValidationMessages = {1:errorMessages["MyAccountNetellerMissingId"]};
                    }
                    if(formControl === "inputPaymentNetellerPayeeName"){
                        var accountValidationMessages = {1:errorMessages["MyAccountNetellerMissingPayeeName"]};
                    }

                    break;
                }
                
                case "Payspark" :{
                    if(formControl === "inputPaymentPaysparkCardNumber"){
                        var accountValidationMessages = {1:errorMessages["MyAccountPaysparkMissingCardNumber"]};
                    }
                    if(formControl === "inputPaymentPaysparkPayeeName"){
                        var accountValidationMessages = {1:errorMessages["MyAccountPaysparkMissingPayeeName"]};
                    } 
                    if(formControl === "inputPaymentPaysparkAccountNumber"){
                        var accountValidationMessages = {1:errorMessages["MyAccountPaysparkMissingAccountNumber"]};
                    }
                    if(formControl === "inputPaymentPaysparkDACNumber"){
                        var accountValidationMessages = {1:errorMessages["MyAccountPaysparkMissingDACNumber"]};
                    } 

                    break;
                }
                case "WireTransfer":{
                    var country = $("#inputPaymentWireTransferPayeeCountry").val();
                    
                    switch (country){ //WIRE TRANSFER PAYEE NAME ERROR MESSAGE
                            case "au":
                            case "at":
                            case "be":
                            case "cz":
                            case "dk":
                            case "ee":
                            case "fi":
                            case "lv":
                            case "lt":
                            case "sk":
                            case "se":{
                                if(formControl === "inputPaymentWireTransferPayeeName"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeName"],
                                    
                                    5:errorMessages["MyAccountWireTransferPayeeName35"],
                                    6:errorMessages["MyAccountWireTransferPayeeName35"]};
                                }                                          
                                break;
                            }
                            
                            case "ie":                
                            {
                               if(formControl === "inputPaymentWireTransferPayeeName"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeName"],
                                    
                                    5:errorMessages["MyAccountWireTransferPayeeName18"],
                                    6:errorMessages["MyAccountWireTransferPayeeName18"]};
                                } 
                                break;
                            }                      
                            
                            case "fr":                
                            {
                                if(formControl === "inputPaymentWireTransferPayeeName"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeName"],
                                    
                                    5:errorMessages["MyAccountWireTransferPayeeName24"],
                                    6:errorMessages["MyAccountWireTransferPayeeName24"]};
                                } 
                                break;
                            }
                            
                            case "de":                
                            {
                                if(formControl === "inputPaymentWireTransferPayeeName"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeName"],
                                    
                                    5:errorMessages["MyAccountWireTransferPayeeName27"],
                                    6:errorMessages["MyAccountWireTransferPayeeName27"]};
                                } 
                                break;
                            }
                            
                            case "no":
                            case "sg":                    
                            {
                                if(formControl === "inputPaymentWireTransferPayeeName"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeName"],
                                    
                                    5:errorMessages["MyAccountWireTransferPayeeName30"],
                                    6:errorMessages["MyAccountWireTransferPayeeName30"]};                                } 
                                break;
                            }
                            
                            case "hu":
                            case "nl":                    
                            case "pl":{
                                if(formControl === "inputPaymentWireTransferPayeeName"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeName"],
                                    
                                    5:errorMessages["MyAccountWireTransferPayeeName30"],
                                    6:errorMessages["MyAccountWireTransferPayeeName30"]};
                                } 
                                break;
                            }
                            
                            case "ca":{
                                if(formControl === "inputPaymentWireTransferPayeeName"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeName"],
                                    
                                    5:errorMessages["MyAccountWireTransferPayeeName50"],
                                    6:errorMessages["MyAccountWireTransferPayeeName50"]};
                                } 
                                break;
                            }    
                            default:{
                            if(formControl === "inputPaymentWireTransferPayeeName"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeName"]};
                                }                                          
                                break;
                            }                                                                                                                                                                  
                        }
                    
                    switch (country){ //WIRE TRANSFER BANK ADDRESS ERROR MESSAGE
                            case "au":
                            case "at":
                            case "be":
                            case "ca":
                            case "cz":
                            case "dk":
                            case "ee":
                            case "fi":
                            case "fr":
                            case "de":
                            case "hu":
                            case "ie":
                            case "lv":
                            case "lt":
                            case "nl":
                            case "no":
                            case "sg":
                            case "sk":
                            case "se":
                            case "gb":{
                                if(formControl === "inputPaymentWireTransferPayeeAddress"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAddress"],
                                    
                                    5:errorMessages["MyAccountWireTransferPayeeAddress50"],
                                    6:errorMessages["MyAccountWireTransferPayeeAddress50"]};
                                }  
                                break;
                            }
                            
                            case "pl":                
                            {
                                if(formControl === "inputPaymentWireTransferPayeeAddress"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAddress"],
                                    
                                    5:errorMessages["MyAccountWireTransferPayeeAddress34"],
                                    6:errorMessages["MyAccountWireTransferPayeeAddress34"]};
                                }  
                                break;
                            }      
                            default:{
                            if(formControl === "inputPaymentWireTransferPayeeAddress"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAddress"]};
                                }  
                                break;
                            }                                                                             
                        }
                    
                    switch (country){ //WIRE TRANSFER ACCOUNT ERROR MESSAGE

                            case "cz":
                            case "de":
                            case "nl":
                            case "se":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeAccountNumber10"]};
                                } 
                                break;
                            }
                            
                            case "ie":
                            case "gb":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeAccountNumber8"]};
                                } 
                                break;
                            }
                            
                            case "au":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeAccountNumber9"]};
                                }                     
                                break;
                            }
                            
                            case "no":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeAccountNumber11"]};
                                }                     
                                break;
                            }
                            
                            case "be":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeAccountNumber12"]};
                                }                     
                                break;
                            }
                            
                            case "fr":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeAccountNumber13"]};
                                }                     
                                break;
                            }
                            
                            case "fi":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeAccountNumber14"]};
                                }                     
                                break;
                            }
                            
                            case "pl":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeAccountNumber26"]};
                                }                     
                                break;
                            }                                                                                   
                            
                            case "at":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    6:errorMessages["MyAccountWireTransferPayeeAccountNumber4-11"],
                                    7:""};
                                } 
                                break;
                            }                     
                            
                            case "dk":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    6:errorMessages["MyAccountWireTransferPayeeAccountNumber4-10"],
                                    7:""};
                                }
                                break;
                            }
                            
                            case "hu":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    6:errorMessages["MyAccountWireTransferPayeeAccountNumber7-15"],
                                    7:""};
                                } 
                                break;
                            }                                            
                            
                            case "lv":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    6:errorMessages["MyAccountWireTransferPayeeAccountNumber19-21"],
                                    7:""};
                                } 
                                break;
                            }                            
                            
                            case "sg":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    6:errorMessages["MyAccountWireTransferPayeeAccountNumber10-11"],
                                    7:""};
                                } 
                                break;
                            }
                            
                            case "sk":{
                                if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"],
                                    6:errorMessages["MyAccountWireTransferPayeeAccountNumber6-20"],
                                    7:""};
                                } 
                                break;
                            }    
                            default:{
                            if(formControl === "inputPaymentWireTransferPayeeAccountNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeAccountNumber"]};
                                } 
                                break;
                            }                                                                                         
                    }
                    
                    switch (country){  //WIRE TRANSFER SORT CODE ERROR MESSAGE
                            case "ca":{
                                if(formControl === "inputPaymentWireTransferPayeeSortCode"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferPayeeSortCode"],
                                    7:errorMessages["MyAccountWireTransferPayeeSortCode3"]};
                                } 
                                break;
                            }
                            
                            case "cz":
                            case "dk":
                            case "sg":
                            case "se":{
                                if(formControl === "inputPaymentWireTransferPayeeSortCode"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferPayeeSortCode"],
                                    7:errorMessages["MyAccountWireTransferPayeeSortCode4"]};
                                } 
                                break;
                            }
                            
                            case "at":
                            case "fr":
                            case "de":{
                                if(formControl === "inputPaymentWireTransferPayeeSortCode"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferPayeeSortCode"],
                                    7:errorMessages["MyAccountWireTransferPayeeSortCode5"]};
                                } 
                                break;
                            }
                            
                            case "au":
                            case "ie":
                            case "gb":
                            {
                                if(formControl === "inputPaymentWireTransferPayeeSortCode"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferPayeeSortCode"],
                                    7:errorMessages["MyAccountWireTransferPayeeSortCode6"]};
                                } 
                                break;
                            }                                                             
                            
                            case "hu":                
                            {
                                if(formControl === "inputPaymentWireTransferPayeeSortCode"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferPayeeSortCode"],
                                    7:errorMessages["MyAccountWireTransferPayeeSortCode7"]};
                                } 
                                break;
                            }    
                            default:{ 
                            if(formControl === "inputPaymentWireTransferPayeeSortCode"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferPayeeSortCode"]};
                                } 
                                break;  
                                }                                                                                 
                        }
                        
                    switch (country){ //WIRE TRANSFER BANK NAME ERROR MESSAGE
                            case "au":
                            case "at":
                            case "be":
                            case "ca":
                            case "cz":
                            case "dk":
                            case "ee":
                            case "fi":
                            case "fr":
                            case "de":
                            case "hu":
                            case "ie":
                            case "lv":
                            case "lt":
                            case "nl":
                            case "no":
                            case "sg":
                            case "sk":
                            case "se":
                            case "gb":
                            {
                                if(formControl === "inputPaymentWireTransferPayeeHoldingBranch"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingHoldingBranch"],
                                    6:errorMessages["MyAccountWireTransferPayeeHoldingBranch50"],
                                    7:errorMessages["MyAccountWireTransferPayeeHoldingBranch50"]};
                                } 
                                break;
                            }
                            
                            case "pl":                
                            {
                                if(formControl === "inputPaymentWireTransferPayeeHoldingBranch"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingHoldingBranch"],
                                    6:errorMessages["MyAccountWireTransferPayeeHoldingBranch34"],
                                    7:errorMessages["MyAccountWireTransferPayeeHoldingBranch34"]};
                                } 
                                break;
                            }      
                            default:{
                            if(formControl === "inputPaymentWireTransferPayeeHoldingBranch"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingHoldingBranch"]};
                                } 
                                break;
                            }                                                                             
                        }
                        
                    switch (country){  //WIRE TRANSFER IBAN ERROR MESSAGES
                            case "no":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber15"]};
                                } 
                                break;
                            }
                            
                            case "be":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber16"]};
                                } 
                                break;
                            }
                            
                            case "dk":
                            case "fi":
                            case "nl":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber18"]};
                                } 
                                break;
                            }
                            
                            case "mk":
                            case "sk":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber19"]};
                                } 
                                break;
                            }
                            
                            case "at":
                            case "ee":
                            case "lt":
                            case "lu":                    
                            {
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber20"]};
                                } 
                                break;
                            }
                            
                            case "hr":
                            case "lv":
                            case "ch":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber21"]};
                                } 
                                break;
                            }
                            
                            case "bg":
                            case "de":
                            case "ie":
                            case "rs":
                            case "gb":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber22"]};
                                } 
                                break;
                            }
                            
                            case "gi":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber23"]};
                                } 
                                break;
                            } 
                            
                            case "cz":
                            case "ro":
                            case "sk":
                            case "es":
                            case "se":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber24"]};
                                } 
                                break;
                            }
                            
                            case "pt":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber25"]};
                                } 
                                break;
                            }
                            
                            case "is":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber26"]};
                                } 
                                break;
                            }
                            
                            case "fr":
                            case "gr":
                            case "it":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber27"]};
                                } 
                                break;
                            }
                            
                            case "cy":
                            case "hu":
                            case "pl":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber28"]};
                                } 
                                break;
                            }
                            
                            case "mt":{
                                if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"],
                                    7:errorMessages["MyAccountWireTransferPayeeIBANNumber31"]};
                                } 
                                break;
                            }
                            default:{
                            if(formControl === "inputPaymentWireTransferPayeeIBANNumber"){
                                    var accountValidationMessages = {1:errorMessages["MyAccountWireTransferMissingPayeeIBANNumber"]};
                                } 
                                break;
                            }
                        }
                }    
            }
            
            //Display error messages
            for(var i = 0; i < validationErrors.length; i++){

                message = message + accountValidationMessages[validationErrors[i]] + "\n";
            }
            uivalidation.error(formControl);
            dialogBox.InPageMessages("#divMessageBox", message); //DIPLAYS ALL VALIDATION ERRORS
    }       
    
    this.AjaxResponse = function(data, textStatus){
        
        if(data === SessionEnum.SessionTimeOut){
            dialogBox.SessionTimeOut();
        }
        else{
            spinner.HideSpinner(); //HIDE SPINNER
        
            //DISPLAYS MESSAGES BASED ON SERVER RESPONSE
            if(data){
                dialogBox.UserInformation(errorMessages["MyAccountUpdatePaymentDetailsSuccess"], null, null);
            }
            else{
                dialogBox.UserInformation(errorMessages["MyAccountUpdatePaymentDetailsFail"]);
            }
        }
    }
    
    this.AccountUpdateDetailsButtonClicked = function(){
        //VALIDATION
        validation.valid = true;
        validation.ValidateFields(affiliateAccountUI.DetailsValidation,"inputFirstName", true,false,false,false,false,false);
        validation.ValidateFields(affiliateAccountUI.DetailsValidation,"inputLastName", true,false,false,false,false,false);
        validation.ValidateFields(affiliateAccountUI.DetailsValidation,"inputEmail",true,false,false,true,false,false);
        validation.ValidateFields(affiliateAccountUI.DetailsValidation,"inputPhone",true,false,false,false,false,false);
        validation.ValidateFields(affiliateAccountUI.DetailsValidation,"inputAddress1",true,false,false,false, false,false);
        validation.ValidateFields(affiliateAccountUI.DetailsValidation,"inputAddress2",true,false,false,false, false,false);
        validation.ValidateFields(affiliateAccountUI.DetailsValidation,"inputAddressState",true,false,false,false, false,false);
        validation.ValidateFields(affiliateAccountUI.DetailsValidation,"inputAddressZip",true,false,false,false, false,false);
        if(validation.valid){
            $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
            spinner.ShowSpinner(); //SHOW SPINNER
            MyAccount.UpdateAffiliateContactDetails("form1");
        }      
    }
        
    this.AccountUpdatePaymentDetailsButtonClicked = function(){
        validation.valid = true;        
            switch($("#selectPaymentType option:selected").val()){
            
                case "Check" :{
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentCheckPayeeName",true,false,false,false,false,false);
                    if(validation.valid===true){
                        $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
                        spinner.ShowSpinner();
                        MyAccount.UpdateAffiliatePaymentDetails("frmCheck", $("#selectPaymentType option:selected").val());
                    }
                    break;
                }    
                case "Click2Pay" :{
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentClick2PayPayeeName", true, false,false,false,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentClick2PayEmail", true,false,false,true,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentClick2PayPAN", true, false,false,false,false,false);
                    if(validation.valid===true){
                        $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
                        spinner.ShowSpinner();
                        MyAccount.UpdateAffiliatePaymentDetails("frmClick2Pay", $("#selectPaymentType option:selected").val());
                    }
                    break;
                }
                case "EcoCard" :{
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentEcoCardPayeeName", true,false,false,false,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentEcoCardName", true,false,false,false,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentEcoCardSurname", true,false,false,false,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentEcoCardEmail", true,false,false,true,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentEcoCardAccountNumber", true,false,false,false,false,false);
                    if(validation.valid===true){
                        $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
                        spinner.ShowSpinner();
                        MyAccount.UpdateAffiliatePaymentDetails("frmEcoCard", $("#selectPaymentType option:selected").val());
                    }
                    break;
                }
                case "Neteller" :{
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentNetellerPayeeName", true,false,false,false,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentNetellerID", true,false,false,false,false,false);
                    if(validation.valid===true){
                        $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
                        spinner.ShowSpinner();
                        MyAccount.UpdateAffiliatePaymentDetails("frmNeteller", $("#selectPaymentType option:selected").val());
                    }
                    break;
                }
                
                case "Moneybookers" :{
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentMoneybookersName", true,false,false,false,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentMoneybookersEmail", true,false,false,false,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentMoneybookersCurrency", true,false,true,false,false,false);
                    if(validation.valid===true){
                        $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
                        spinner.ShowSpinner();
                        MyAccount.UpdateAffiliatePaymentDetails("frmMoneybookers", $("#selectPaymentType option:selected").val());
                    }
                    break;
                }
                
                case "Payspark" :{
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentPaysparkPayeeName", true,false,false,false,false,false); 
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentPaysparkCardNumber", true,false,false,false,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentPaysparkAccountNumber", true,false,false,false,false,false);
                    validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentPaysparkDACNumber", true,false,false,false,false,false); 
                    if(validation.valid===true){
                        $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
                        spinner.ShowSpinner();
                        MyAccount.UpdateAffiliatePaymentDetails("frmPayspark", $("#selectPaymentType option:selected").val());
                    }
                    break;
                }
                
               case "WireTransfer":{  //VALIDATION
                 
//                   var country = $("#inputPaymentWireTransferPayeeCountry").val();
//                    var iban = $("#inputPaymentWireTransferPayeeIBANNumber").val();
//                    validation.valid = true;
//                
//                    if (validation.valid === true){
//                        switch (country)  //VALIDATE PAYEE NAME
//                        {
//                            case "au":
//                            case "at":
//                            case "be":
//                            case "cz":
//                            case "dk":
//                            case "ee":
//                            case "fi":
//                            case "lv":
//                            case "lt":
//                            case "sk":
//                            case "se":
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeName", true,false,false,false,0,35,false);                                         
//                                break;
//                            }
//                            
//                            case "ie":                
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeName", true,false,false,false,0,18,false); 
//                                break;
//                            }                      
//                            
//                            case "fr":                
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeName", true,false,false,false,0,24,false); 
//                                break;
//                            }
//                            
//                            case "de":                
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeName", true,false,false,false,0,27,false); 
//                                break;
//                            }
//                            
//                            case "no":
//                            case "sg":                    
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeName", true,false,false,false,0,30,false); 
//                                break;
//                            }
//                            
//                            case "hu":
//                            case "nl":                    
//                            case "pl":    
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeName", true,false,false,false,0,30,false); 
//                                break;
//                            }
//                            
//                            case "ca":                
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeName", true,false,false,false,0,50,false); 
//                                break;
//                            }     
//                            default:{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeName", true,false,false,false,false,false,false);                                         
//                                break;
//                            }                                                                                                                                                                 
//                        }
//                    }
//                    
//                    if (validation.valid === true){ //VALIDATE BANK ADDRESS
//                        switch (country){
//                            case "au":
//                            case "at":
//                            case "be":
//                            case "ca":
//                            case "cz":
//                            case "dk":
//                            case "ee":
//                            case "fi":
//                            case "fr":
//                            case "de":
//                            case "hu":
//                            case "ie":
//                            case "lv":
//                            case "lt":
//                            case "nl":
//                            case "no":
//                            case "sg":
//                            case "sk":
//                            case "se":
//                            case "gb":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAddress", true,false,false,false,0,50,false); 
//                                break;
//                            }
//                            
//                            case "pl":                
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAddress", true,false,false,false,0,34,false); 
//                                break;
//                            }  
//                            default:{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAddress", true,false,false,false,false,false,false); 
//                                break;
//                            }                                                                                 
//                        }
//                    }
//                
//                    if (validation.valid === true){  //VALIDATE ACCOUNT NUMBER
//                        switch (country){
//                            case "cz":
//                            case "de":
//                            case "nl":
//                            case "se":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,false,false,10);                                         
//                                break;
//                            }
//                            
//                            case "ie":
//                            case "gb":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,false,false,8);                     
//                                break;
//                            }
//                            
//                            case "au":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,false,false,9);                                         
//                                break;
//                            }
//                            
//                            case "no":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,false,false,11);                                         
//                                break;
//                            }
//                            
//                            case "be":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,false,false,12);                                        
//                                break;
//                            }
//                            
//                            case "fr":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,false,false,13);                                        
//                                break;
//                            }
//                            
//                            case "fi":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,false,false,14);                                         
//                                break;
//                            }
//                            
//                            case "pl":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,false,false,26);                                        
//                                break;
//                            }                                                                                   
//                            
//                            case "at":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,4,11,false);                     
//                                break;
//                            }                     
//                            
//                            case "dk":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,4,10,false);                     
//                                break;
//                            }
//                            
//                            case "hu":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,7,15,false);                     
//                                break;
//                            }                                            
//                            
//                            case "lv":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,19,21,false);
//                                break;
//                            }                            
//                            
//                            case "sg":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,10,11,false);
//                                break;
//                            }
//                            
//                            case "sk":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,6,20,false);
//                                break;
//                            }   
//                            
//                            default:{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeAccountNumber", true,false,false,false,false,false,false);
//                                break;
//                            }                                                                                                   
//                        }
//                    }
//                    
//                    if (validation.valid === true){ //VALIDATE SORT CODE
//                        switch (country){
//                            case "ca":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeSortCode", true,false,false,false,false,false,3);
//                                break;
//                            }
//                            
//                            case "cz":
//                            case "dk":
//                            case "sg":
//                            case "se":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeSortCode", true,false,false,false,false,false,4);
//                                break;
//                            }
//                            
//                            case "at":
//                            case "fr":
//                            case "de":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeSortCode", true,false,false,false,false,false,5);
//                                break;
//                            }
//                            
//                            case "au":
//                            case "ie":
//                            case "gb":
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeSortCode", true,false,false,false,false,false,6);
//                                break;
//                            }                                                             
//                            
//                            case "hu":                
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeSortCode", true,false,false,false,false,false,7);
//                                break;
//                            }   
//                            
//                            default:{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeSortCode", true,false,false,false,false,false,false);
//                                break;
//                            }                                                                                     
//                        }
//                    } 
//                
//                    if (validation.valid === true){ //VALIDATE BANK NAME
//                        switch (country){
//                            case "au":
//                            case "at":
//                            case "be":
//                            case "ca":
//                            case "cz":
//                            case "dk":
//                            case "ee":
//                            case "fi":
//                            case "fr":
//                            case "de":
//                            case "hu":
//                            case "ie":
//                            case "lv":
//                            case "lt":
//                            case "nl":
//                            case "no":
//                            case "sg":
//                            case "sk":
//                            case "se":
//                            case "gb":
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeHoldingBranch", true,false,false,false,0,50,false);
//                                break;
//                            }
//                            
//                            case "pl":                
//                            {
//                                 validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeHoldingBranch", true,false,false,false,0,34,false);
//                                break;
//                            }    
//                            
//                            default:{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeHoldingBranch", true,false,false,false,false,false,false);
//                                break;
//                            }                                                                               
//                        }
//                    }
//                    
//                    if (validation.valid){  //VALIDATE IBAN
//                        switch (country){
//                            case "no":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,15);
//                                break;
//                            }
//                            
//                            case "be":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,16);
//                                break;
//                            }
//                            
//                            case "dk":
//                            case "fi":
//                            case "nl":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,18);
//                                break;
//                            }
//                            
//                            case "mk":
//                            case "sk":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,19);
//                                break;
//                            }
//                            
//                            case "at":
//                            case "ee":
//                            case "lt":
//                            case "lu":                    
//                            {
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,20);
//                                break;
//                            }
//                            
//                            case "hr":
//                            case "lv":
//                            case "ch":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,21);
//                                break;
//                            }
//                            
//                            case "bg":
//                            case "de":
//                            case "ie":
//                            case "rs":
//                            case "gb":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,22);
//                                break;
//                            }
//                            
//                            case "gi":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,23);
//                                break;
//                            } 
//                            
//                            case "cz":
//                            case "ro":
//                            case "sk":
//                            case "es":
//                            case "se":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,24);
//                                break;
//                            }
//                            
//                            case "pt":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,25);
//                                break;
//                            }
//                            
//                            case "is":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,26);
//                                break;
//                            }
//                            
//                            case "fr":
//                            case "gr":
//                            case "it":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,27);
//                                break;
//                            }
//                            
//                            case "cy":
//                            case "hu":
//                            case "pl":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,28);
//                                break;
//                            }
//                            
//                            case "mt":{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,31);
//                                break;
//                            }
//                            
//                            default:{
//                                validation.ValidateFields(affiliateAccountUI.AccountPaymentDetailValidationError, "inputPaymentWireTransferPayeeIBANNumber", true,false,false,false,false,false,false);
//                                break;
//                            }
//                        }
//                    }
                    if(validation.valid===true){
                        $("#divMessageBox").empty(); //CLEAR THE INPAGE ERROR BOX
                        spinner.ShowSpinner();
                        MyAccount.UpdateAffiliatePaymentDetails("frmWireTransfer", $("#selectPaymentType option:selected").val());
                    }
                    break;
                }
            }   
    }

    this.selectBoxPaymentChanged = function(){ 

        var arrayPaymentTypes = new Array();
        
        arrayPaymentTypes[0] = "Check";
        arrayPaymentTypes[1] = "WireTransfer";
        arrayPaymentTypes[2] = "Payspark";
        arrayPaymentTypes[3] = "EcoCard";
        arrayPaymentTypes[4] = "Neteller";
        arrayPaymentTypes[5] = "Click2Pay";
        arrayPaymentTypes[6] = "Moneybookers";
         
        for(i=0; i<arrayPaymentTypes.length; i++)
        {  //DISABLE ALL PAYMENT OPTION TYPES THAT ARENT SELECTED BY THE SELECT BOX
            if($("#selectPaymentType option:selected").val() === arrayPaymentTypes[i])
            {
                $("#btnPaymentSelector").hide();  //hide the unobtrusive button
                $("#frm" + arrayPaymentTypes[i]).css({'display':'block'});
                $("#" + arrayPaymentTypes[i]).show();
                $("#" + arrayPaymentTypes[i] + " > *").removeAttr("disabled");
             }  
            else
            {
               $("#" + arrayPaymentTypes[i]).hide();
               $("#" + arrayPaymentTypes[i] + " > *").attr("disabled");
            }
        }
    }

    this.selectBoxCountryChanged = function(){
        var arrayPaymentTypes = new Array();
        var selectedPaymentType = $("#selectPaymentType option:selected").text();

        $("#selectPaymentType").empty();
            
        switch ($("#selectCountry").val()) 
        {
            case "us":
            {
                arrayPaymentTypes[0] = "Check";
                arrayPaymentTypes[1] = "Click2Pay";
                arrayPaymentTypes[2] = "Payspark";
                arrayPaymentTypes[3] = "WireTransfer";
                
                break;                        
            }  
            
            case "fr":
            {

                arrayPaymentTypes[0] = "Click2Pay";
                arrayPaymentTypes[1] = "EcoCard";
                arrayPaymentTypes[2] = "Neteller";
                arrayPaymentTypes[3] = "WireTransfer";
                arrayPaymentTypes[4] = "Payspark";
                arrayPaymentTypes[5] = "Moneybookers";

                break;                        
            }
            
            case "af":
            case "ir":
            case "iq":
            case "lb":
            case "lr":
            case "kp":
            case "sd":
            case "sy":
            case "zw":
            {

                arrayPaymentTypes[0] = "Click2Pay";
                arrayPaymentTypes[1] = "EcoCard";
                arrayPaymentTypes[2] = "Neteller";
                arrayPaymentTypes[3] = "Payspark";
                arrayPaymentTypes[4] = "Moneybookers";
                  
                break;                        
            }

            case "ca":
            case "il":
            case "tr":
            {

                arrayPaymentTypes[0] = "Check";
                arrayPaymentTypes[1] = "Click2Pay";
                arrayPaymentTypes[2] = "EcoCard";
                arrayPaymentTypes[3] = "WireTransfer";
                arrayPaymentTypes[4] = "Payspark";
                arrayPaymentTypes[5] = "Moneybookers";
                  
                break;                        
            }
                    
            default:
            {
                arrayPaymentTypes[0] = "Check";
                arrayPaymentTypes[1] = "Click2Pay";
                arrayPaymentTypes[2] = "EcoCard";
                arrayPaymentTypes[3] = "Neteller";
                arrayPaymentTypes[4] = "WireTransfer";
                arrayPaymentTypes[5] = "Payspark";
                arrayPaymentTypes[6] = "Moneybookers";
                           
                break;
            }                                                              
        } 
        
        for(i=0; i<arrayPaymentTypes.length; i++)
        {
            if (arrayPaymentTypes[i] == selectedPaymentType)
            {
                $("#selectPaymentType").append("<option value=\""+arrayPaymentTypes[i]+"\" selected>"+arrayPaymentTypes[i]+"</option>");
            }
            else
            {
                $("#selectPaymentType").append("<option value=\""+arrayPaymentTypes[i]+"\">"+arrayPaymentTypes[i]+"</option>");
            }
        }
        //force the payment details screen to reload
        affiliateAccountUI.selectBoxPaymentChanged();
    }
}
