﻿
jQuery(document).ready(function() {
    /* merchant top logon */
    addWatermarkScript("#tbMerEmail", "Email");
    addPwdWatermarkScript("#labelMerPwd", "#tbMerPwd", "");
    pwdLabelTopAdjust();

    /* side logon for merchant */
    addWatermarkScript("#sideMerEmail", "Email");
    addPwdWatermarkScript("#sidelabelMerPwd", "#sideMerPwd", "");
    pwdLabelSideAdjust();

    var url = location.href;
    url = url.toLowerCase();

    if (url.indexOf("/register/merchant1") > 0) merReg1Init();
    else if (url.indexOf("/register/merchant3") > 0) merReg3Init();
    else if (url.indexOf("/register/merchant4") > 0) merReg4Init();
    else if (url.indexOf("/merchants") == url.length - 10 || url.indexOf("/merchants") == url.length - 11) merProInit();
    else if (url.indexOf("/merchants/logon") > 0) $("#tbLoginEmail").focus();
});

function addWatermarkScript(obj, defaultValue) {
    if ($(obj).val() == "") $(obj).val(defaultValue).removeClass("tb").addClass("tbwatermark");
    
    /* Define what happens when the textbox comes under focus, remove the watermark class and clear the box */
    jQuery(obj).focus(function() {
        jQuery(this).filter(function() {
            /* We only want this to apply if there's not something actually entered */
            return jQuery(this).val() == "" || jQuery(this).val() == defaultValue
        }).removeClass("tbwatermark").addClass("tb").val("");
    });
    /* Define what happens when the textbox loses focus, add the watermark class and default text */
    jQuery(obj).blur(function() {
        jQuery(this).filter(function() {
            /* We only want this to apply if there's not something actually entered */
            return jQuery(this).val() == "" || jQuery(this).val() == defaultValue
        }).removeClass("tb").addClass("tbwatermark").val(defaultValue);
    });
}

function addPwdWatermarkScript(label, input, defaultValue) {
    $(label).click(function() {
        $(this).css("z-index", "-1");
        $(input).focus();
    });

    jQuery(input).focus(function() {
        $(label).css("z-index", "-1");
    });

    jQuery(input).blur(function() {
        /* We only want this to apply if there's not something actually entered */
        if (jQuery(this).val() == "" || jQuery(this).val() == defaultValue) {
            jQuery(label).css("z-index", "");
        }
    });
}

function CheckboxExclusive(obj, cbarray) {
    $("#" + obj).click(function() {
        for (var i = 0; i < cbarray.length; i++) {
            if (obj != cbarray[i]) document.getElementById(cbarray[i]).checked = false;
        }
    });
}


/**--------------------------
//* Validate Date Field script- By JavaScriptKit.com
//* For this script and 100s more, visit http://www.javascriptkit.com
//* This notice must stay intact for usage
---------------------------**/
function checkdate(date, dateType) {
    var validformat = /^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity

    if (!validformat.test(date)) {
        alert("Invalid Date Format. Please correct " + dateType + ".");
        return false;
    }
    else { //Detailed check for valid date ranges
        var monthfield = date.split("/")[0]
        var dayfield = date.split("/")[1]
        var yearfield = date.split("/")[2]
        var dayobj = new Date(yearfield, monthfield - 1, dayfield)

        if ((dayobj.getMonth() + 1 != monthfield) || (dayobj.getDate() != dayfield) || (dayobj.getFullYear() != yearfield)) {
            alert("Invalid Day, Month, or Year range detected. Please correct " + dateType + ".");
            return false;
        }
        else
            return true;
    }
}

/* make sure email is in a valid format */
function CheckEmail(email) {
    var objRegExp = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
    var result = objRegExp.test(email);

    if (result == false) {
        alert('The e-mail address provided is invalid. Please check the value and try again.');
        return false;
    }
    else
        return true;
}

/* phone must be in this format ###-###-####
   return true if default value is pass in
*/
function CheckPhone(phone, phonetype) {
    if(phone != "###-###-####") {
        var objRegExp = /^\d{3}\-\d{3}\-\d{4}$/;
        var result = objRegExp.test(phone);

        if (result == false) {
            alert('The ' + phonetype + ' number provided is invalid\r\n\r\n' + phonetype + ' must be in this format ###-###-####.');
            return false;
        }
        else
            return true;
    }
    else {
        return true;
    }
}

// determine browser the user is using
function GetBrowser() {
    var browser = "";
    if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
        browser = "firefox";
    }
    else if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
        browser = "ie";
    }
    else if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
        browser = "opera";
    }
    else if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
        browser = "chrome";
    }
    else if (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
        browser = "safari";
    }

    return browser;
}

function pwdLabelSideAdjust() {
    var label = "#sidelabelMerPwd";
    var browser = GetBrowser();
    
    if (browser == "chrome") $(label).css("top", "3px");
    else if (browser == "safari") $(label).css("top", "2px");
}
function pwdLabelTopAdjust() {
    var browser = GetBrowser();
    if (browser == "firefox" || browser == "opera")
        $("#labelMerPwd").css("top", "2px");
}

function merBillingClick() {
    var cardtypeIndex = document.getElementById("merBillCardType").selectedIndex;
    var cardname = $("#merBillCardName").val();
    var cardnum = $("#merBillCardNum").val();
    var cardcode = $("#merBillCardSecCode").val();
    var expmonth = document.getElementById("merBillCardExpMonth").selectedIndex;
    var expyear = document.getElementById("merBillCardExpYear").selectedIndex;
    
    if (cardtypeIndex != 0 || cardname != '' || cardnum != '') {
        if (cardtypeIndex == 0) {
            alert("Please select a card type.");
            return false;
        }
        else if (cardname == "") {
            alert("Please enter card holder name.");
            return false;
        }
        else if (cardnum == "") {
            alert("Please enter credit/debit card number.");
            return false;
        }
        else if (cardcode == "") {
            alert("Please enter card sercurity code.");
            return false;
        }
        else if (expmonth == 0 || expyear == 0) {
            alert("Please specify card expiration month and year.");
            return false;
        }
        else {
            document.getElementById("regresult").innerHTML = '';
            return true;
        }
    }
    else {
        document.getElementById("regresult").innerHTML = '';
        return true;
    }
}

function merLogonClick(emailObj, pwdObj) {
    var email = $(emailObj).val();
    var pwd = $(pwdObj).val();

    if (email == '' || email == 'Email') {
        alert('Please enter your email to logon to your account.');
        return false;
    }
    else if (CheckEmail(email) == false)
        return false;
    else if (pwd == '') {
        alert('Please enter your password to logon to your account.');
        return false;
    }
    else {
        return true;
    }
}

function merProfileClick() {
    var phone = $("#merProPhone").val();
    var fax = $("#merProFax").val();
    var email = $("#merProEmail").val();
    var emailconfirm = $("#merProEmailConfirm").val();
    var emailcurrent = $("#merProEmailCurrent").val();
    var pwd = $("#merProPwd").val();
    var pwdconfirm = $("#merProPwdConfirm").val();
    var pwdold = $("#merProPwdOld").val();

    if (CheckPhone(phone, 'phone') == false)
        return false;
    else if (CheckPhone(fax, 'fax') == false)
        return false;
    else if (email == '') {
        alert('Email can not be empty.  Please enter a valid email address.');
        return false;
    }
    else if (email != emailcurrent && CheckEmail(email) == false)
        return false;
    else if (email != emailcurrent && email != emailconfirm) {
        alert("Email and confirm email fields do not match.");
        return false;
    }
    else if (pwd != "" && pwdold == "") {
        alert("To change your password please enter your old password or your temporary password.");
        return false;
    }
    else if (pwd != pwdconfirm) {
        alert("New password and confirm new password fields do not match.");
        return false;
    }
    else {
        document.getElementById("regresult").innerHTML = '';
        return true;
    }
}

function merProInit() {
    /* watermarks for phone & fax */
    addWatermarkScript("#merProPhone", "###-###-####");
    addWatermarkScript("#merProFax", "###-###-####");
}

function merReg1Click() {
    if (merReg1CheckBasic() == false)
        return false;
    else if (merReg1CheckBill() == false)
        return false;
    else if (merReg1CheckShip() == false)
        return false;
    else if (merReg1CheckBusInfo() == false)
        return false;
    else if (merReg1CheckBusAddr() == false)
        return false;
    else {
        document.getElementById("regresult").innerHTML = '';
        return true;
    }
}

function merReg1CheckBasic() {
    var fname = $("#merRegFirstName").val();
    var lname = $("#merRegLastName").val();
    var companyname = $("#merRegCompanyName").val();
    var phone = $("#merRegPhone").val();
    var fax = $("#merRegFax").val();
    
    if (fname == "") {
        alert("First name is required.  Please enter your first name.");
        return false;
    }
    else if (lname == "") {
        alert("Last name is required.  Please enter your last name.");
        return false;
    }
    else if (companyname == "") {
        alert("Company name is required.  Please enter your company name.");
        return false;
    }
    else if (phone == "###-###-####") {
        alert("Phone is required.  Please enter your phone number.");
        return false;
    }
    else if (CheckPhone(phone, 'phone') == false)
        return false;
    else if (CheckPhone(fax, 'fax') == false)
        return false;
    else
        return true;
}

function merReg1CheckBill() {
    var billstreet = $("#merRegBillStreet").val();
    var billcity = $("#merRegBillCity").val();
    var billstateIndex = document.getElementById("merRegBillState").selectedIndex;
    var billzip = $("#merRegBillZip").val();

    if (billstreet == "") {
        alert("Billing address cannot be empty");
        return false;
    }
    else if (billcity == "") {
        alert("Billing city cannot be empty.");
        return false;
    }
    else if (billstateIndex == 0) {
        alert("Please specify a billing state.");
        return false;
    }
    else if (billzip == "") {
        alert("Billing zipcode cannot be empty.");
        return false;
    }
    else
        return true;
}

function merReg1CheckShip() {
    var shipsameasbill = document.getElementById("merRegShipSameAsBill").checked;
    var shipstreet = $("#merRegShipStreet").val();
    var shipcity = $("#merRegShipCity").val();
    var shipstateIndex = document.getElementById("merRegShipState").selectedIndex;
    var shipzip = $("#merRegShipZip").val();

    if (shipsameasbill == false) {
        if (shipstreet == "") {
            alert("Shipping address cannot be empty");
            return false;
        }
        else if (shipcity == "") {
            alert("Shipping city cannot be empty.");
            return false;
        }
        else if (shipstateIndex == 0) {
            alert("Please specify a shipping state.");
            return false;
        }
        else if (shipzip == "") {
            alert("Shipping zipcode cannot be empty.");
            return false;
        }
        else
            return true;
    }
    else
        return true;
}

function merReg1CheckBusInfo() {
    var buscommenceddate = $("#merRegBusCommenced").val();
    var bustypesole = document.getElementById("merRegBusSoleProprietor").checked;
    var bustypepartner = document.getElementById("merRegBusPartner").checked;
    var bustypecorp = document.getElementById("merRegBusCorp").checked;
    var bustypeother = $("#merRegBusOther").val();
    var busphone = $("#merRegBusPhone").val();
    var busfax = $("#merRegBusFax").val();
    var busyears = $("#merRegBusCurAddrYears").val();

    if (buscommenceddate == 'mm/dd/yyyy') {
        alert("Date business commenced is required.");
        return false;
    }
    else if (checkdate(buscommenceddate, 'business commenced date') == false)
        return false;
    else if (bustypesole == false && bustypepartner == false && bustypecorp == false && bustypeother == "") {
        alert("Please specify the type of your business.");
        return false;
    }
    else if (busphone == "###-###-####") {
        alert("Business phone is required.  Please enter your business phone number.");
        return false;
    }
    else if (CheckPhone(busphone, 'business phone') == false)
        return false;
    else if (CheckPhone(busfax, 'business fax') == false)
        return false;
    else if (busyears == "") {
        alert("Years at current address cannot be empty.");
        return false;
    }
    else
        return true;
}

function merReg1CheckBusAddr() {
    var bussameasbill = document.getElementById("merRegBusSameAsBill").checked;
    var bussameasship = document.getElementById("merRegBusSameAsShip").checked;
    var busstreet = $("#merRegBusAddr").val();
    var buscity = $("#merRegBusCity").val();
    var busstateIndex = document.getElementById("merRegBusState").selectedIndex;
    var buszip = $("#merRegBusZip").val();

    if (bussameasbill == false && bussameasship == false) {
        if (busstreet == "") {
            alert("Business primary address cannot be empty.");
            return false;
        }
        else if (buscity == "") {
            alert("Primary business address (city) cannot be empty.");
            return false;
        }
        else if (busstateIndex == 0) {
            alert("Primary business address (state) must be specified.");
            return false;
        }
        else if (buszip == "") {
            alert("Primary business address (zipcode) cannot be empty.");
            return false;
        }
        else
            return true;
    }
    else
        return true;
}

function merReg1Init() {
    /* watermarks for merchant business commenced date, phone, fax, etc. */
    addWatermarkScript("#merRegPhone", "###-###-####");
    addWatermarkScript("#merRegFax", "###-###-####");

    addWatermarkScript("#merRegBusCommenced", "mm/dd/yyyy");
    addWatermarkScript("#merRegBusPhone", "###-###-####");
    addWatermarkScript("#merRegBusFax", "###-###-####");

    /* set scripts for business type checkboxes and business address checkboxes */
    var cbBusType = new Array("merRegBusSoleProprietor", "merRegBusPartner", "merRegBusCorp");
    CheckboxExclusive(cbBusType[0], cbBusType);
    CheckboxExclusive(cbBusType[1], cbBusType);
    CheckboxExclusive(cbBusType[2], cbBusType);

    var cbBusAddr = new Array("merRegBusSameAsBill", "merRegBusSameAsShip");
    CheckboxExclusive(cbBusAddr[0], cbBusAddr);
    CheckboxExclusive(cbBusAddr[1], cbBusAddr);
}

function merReg2Click() {
    var hearmail = document.getElementById("merRegHearMail").checked;
    var hearmag = $("#merRegHearMag").val();
    var hearnet = $("#merRegHearInternet").val();
    var hearrep = $("#merRegHearSalesRep").val();
    var hearpartner = $("#merRegHearPartner").val();
    var hearother = $("#merRegHearOther").val();

    if (hearmail == false && hearmail == "" && hearnet == "" && hearrep == "" && hearpartner == "" && hearother == "") {
        alert("Please let us know how did you hear about us.");
        return false;
    }
    else {
        document.getElementById("regresult").innerHTML = '';
        return true;
    }
}

function merReg3Click() {
    if (merReg3IsTradeRefEmpty(merReg3TradeRef1) && merReg3IsTradeRefEmpty(merReg3TradeRef2) && merReg3IsTradeRefEmpty(merReg3TradeRef3)) {
        alert("At least 1 trade reference must be specified");
        return false;
    }
    else if (!merReg3IsTradeRefEmpty(merReg3TradeRef1) && merReg3CheckTradeRef(merReg3TradeRef1, "1") == false)
        return false;
    else if (!merReg3IsTradeRefEmpty(merReg3TradeRef2) && merReg3CheckTradeRef(merReg3TradeRef2, "2") == false)
        return false;
    else if (!merReg3IsTradeRefEmpty(merReg3TradeRef3) && merReg3CheckTradeRef(merReg3TradeRef3, "3") == false)
        return false;
    else {
        document.getElementById("regresult").innerHTML = '';
        return true;
    }
}

var merReg3TradeRef1 = new Array("merRegBusRef1Name", "merRegBusRef1FirstName", "merRegBusRef1LastName", "merRegBusRef1Addr", "merRegBusRef1City", "merRegBusRef1State", "merRegBusRef1Zip", "merRegBusRef1Phone", "merRegBusRef1Fax");
var merReg3TradeRef2 = new Array("merRegBusRef2Name", "merRegBusRef2FirstName", "merRegBusRef2LastName", "merRegBusRef2Addr", "merRegBusRef2City", "merRegBusRef2State", "merRegBusRef2Zip", "merRegBusRef2Phone", "merRegBusRef2Fax");
var merReg3TradeRef3 = new Array("merRegBusRef3Name", "merRegBusRef3FirstName", "merRegBusRef3LastName", "merRegBusRef3Addr", "merRegBusRef3City", "merRegBusRef3State", "merRegBusRef3Zip", "merRegBusRef3Phone", "merRegBusRef3Fax");

function merReg3CheckTradeRef(objArray, tradeNum) {
    if ($("#" + objArray[0]).val() == "") {
        alert("Business name cannot be empty (trade reference " + tradeNum + ").");
        return false;
    }
    else if ($("#" + objArray[1]).val() == "") {
        alert("Contact first name cannot be empty (trade reference " + tradeNum + ").");
        return false;
    }
    else if ($("#" + objArray[2]).val() == "") {
        alert("Contact last name cannot be empty (trade reference " + tradeNum + ").");
        return false;
    }
    else if ($("#" + objArray[3]).val() == "") {
        alert("Business address cannot be empty (trade reference " + tradeNum + ").");
        return false;
    }
    else if ($("#" + objArray[4]).val() == "") {
        alert("City cannot be empty (trade reference " + tradeNum + ").");
        return false;
    }
    else if (document.getElementById(objArray[5]).selectedIndex == 0) {
        alert("State must be specified (trade reference " + tradeNum + ").");
        return false;
    }
    else if ($("#" + objArray[6]).val() == "") {
        alert("Zipcode cannot be empty (trade reference " + tradeNum + ").");
        return false;
    }
    else if ($("#" + objArray[7]).val() == "###-###-####") {
        alert("Business phone must be specified (trade reference " + tradeNum + ").");
        return false;
    }
    else if (CheckPhone($("#" + objArray[7]).val(), "business phone") == false)
        return false;
    else if (CheckPhone($("#" + objArray[8]).val(), "business fax") == false)
        return false;
    else return true;
}

function merReg3IsTradeRefEmpty(objArray) {
    return $("#" + objArray[0]).val() == "" &&
           $("#" + objArray[1]).val() == "" &&
           $("#" + objArray[2]).val() == "" &&
           $("#" + objArray[3]).val() == "" &&
           $("#" + objArray[4]).val() == "" &&
           document.getElementById(objArray[5]).selectedIndex == 0 &&
           $("#" + objArray[6]).val() == "" &&
           $("#" + objArray[7]).val() == "###-###-####" &&
           $("#" + objArray[8]).val() == "###-###-####";
}

function merReg3Init() {
    /* step 3 watermarks */
    addWatermarkScript("#merRegBusRef1Phone", "###-###-####");
    addWatermarkScript("#merRegBusRef1Fax", "###-###-####");

    addWatermarkScript("#merRegBusRef2Phone", "###-###-####");
    addWatermarkScript("#merRegBusRef2Fax", "###-###-####");

    addWatermarkScript("#merRegBusRef3Phone", "###-###-####");
    addWatermarkScript("#merRegBusRef3Fax", "###-###-####");
}

function merReg4Click() {
    var email = $("#merRegEmail").val();
    var emailconfirm = $("#merRegEmailConfirm").val();
    var pwd = $("#merRegPassword").val();
    var pwdconfirm = $("#merRegPasswordConfirm").val();
    var agreement = document.getElementById("merRegAgreeCB").checked;

    if (email == '') {
        alert('Email is required to create new account.');
        return false;
    }
    else if (CheckEmail(email) == false)
        return false;
    else if (email != emailconfirm) {
        alert("Emails do not match.");
        return false;
    }
    else if (pwd == '') {
        alert('Password is required to create new account.');
        return false;
    }
    else if (pwd != pwdconfirm) {
        alert("Passwords do not match.");
        return false;
    }
    else if (agreement == false) {
        alert("You must check 'Yes, I agree to the terms above' checkbox.");
        return false;
    }
    else {
        document.getElementById("regresult").innerHTML = '';
        return true;
    }
}
function merReg4Init() {
    /* set css for ul based on browser */
    var browser = GetBrowser();
    if (browser == "ie") $("#agreeul").css("margin-left", "23px");
}

function merRetrievePwdClick(emailObj) {
    var email = $(emailObj).val();

    if (email == '') {
        alert('Please enter your email address .');
        return false;
    }
    else if (CheckEmail(email) == false)
        return false;
    else {
        return true;
    }
}

function orderCBheadClick(control) {
    var checked = document.getElementById(control).checked;
    var cblist = document.getElementsByTagName("input");

    for (var i = 0; i < cblist.length; i++) {
        if (cblist[i].type == 'checkbox' && cblist[i].id != control && cblist[i].id.indexOf("cborder") == 0) {
            cblist[i].checked = checked;
        }
    }
}

function cborderClick(obj) {
    try {
        var checked = document.getElementById(obj.id).checked;
        if (checked == false)
            document.getElementById("cbhead").checked = false;
    }
    catch (e) { }
}

function archiveorderClick() {
    var result = false;
    var cblist = document.getElementsByTagName("input");

    for (var i = 0; i < cblist.length; i++) {
        if (cblist[i].type == 'checkbox' && cblist[i].id != "cbhead" && cblist[i].id.indexOf("cborder") == 0 && cblist[i].checked == true) {
            result = true;
            break;
        }
    }

    if (result)
        return true;
    else {
        alert("No order selected.  You must click the order you want to archive before clicking Archive button.\r\n\r\nPlease try again.");
        return false;
    }
}





