Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed



$(document).ready(function(){

        tempLogEmail = "";      // Store email id of login page for reg user via shop2020 and via facebook
        emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
        
        blnFieldChanged         = false;
        blnCancelClicked        = false;

        /**
                Personal Details page 
        */
        if($("#personalDetails").length){
                
                arrPersonalDetail = new Array(7); // Store Personal Detail page field change status and initial data
                
                /*
                perName          = "Tanuj Shah";
                perMonth         = "June";
                perDay           = "4";
                perYear          = "1984";
                perSex           = "male";
                perCommEmail = "tanuj@tanujshah.com";
                perSubscribe = true;
                */
                // Personal Details page field name 
                frmPersonal       = "#frmPersonalDetails";
                perFieldName      = frmPersonal + " #txtName";
                perFieldDateOfBirth       = frmPersonal + " #txtDateOfBirth";
                perFieldSex               = frmPersonal + " input[name='sex']";
                perFieldCommEmail = frmPersonal + " #txtCommEmail";
                perFieldSubscribe = frmPersonal + " input[name='subscribe']";
                perFieldPhone     = frmPersonal + " #txtPhone";
                
                personalDetailSetup();
        }
        
        /**
                Login Detail page for reg user via shop2020 
        */
        if($("#registeredUserShop2020:visible").length > 0){                    
                /*
                logRegEmail = "tanuj@tanujshah.com";
                */
                // Login Details page Registered User field name
                frmLogReg               = "#frmRegisUser";
                regFieldEmail   = frmLogReg + " #txtLoginID";
                regFieldOldPass = frmLogReg + " #txtOldPassword";
                regFieldNewPass = frmLogReg + " #txtNewPassword";
                regFieldConPass = frmLogReg + " #txtConfirmPassword";
                
                registeredUserSetup();
        }
        
        /**
                Login Detail page for reg user via facebook 
        */
        if($("#registeredUserFacebook:visible").length > 0){
                /*
                logRegFBEmail = "tanuj@tanujshah.com";
                */

                // Login Details page Registered User via Facebook field name
                frmLogRegFB             = "#frmFacebookUser";
                regFieldFBEmail         = frmLogRegFB + " #txtFacebookLogin";
                regFieldFBPass          = frmLogRegFB + " #txtPassword";

                registeredUserFBSetup();
        }
        
        /**
                Shipping Address page 
        */
        if($("#shippingAddress").length){
                
                arrOtherAddID   = [];   // 1D Array
                arrBackupAdd    = [];   // 1D Array
                
                shippingAddressSetup();
        }

        $('div#changeAddresses').hide();
        $('div#changeAddressSave').hide();
        $('div#changeAddressCancel').hide();

        $('div#changeAddress').live('click', function() {
                $('div#changeAddressSave').show();
                $('div#changeAddressCancel').show();
                $('div#changeAddresses').show();
                $('div#changeAddress').hide();
                scrollWindow('changeAddressSave', 1000);
    });

        $('div#changeAddressCancel').live('click', function() {
        $('div#changeAddressSave').hide();
        $('div#changeAddressCancel').hide();
        $('div#changeAddresses').hide();
        $('div#changeAddress').show();
        });

        $('#changeAddresses #addresses .button-address-select').live('click', function() {
            $('#addresses tr').removeClass('default-address');
            $('#addresses tr td img').addClass('button-address-select');
            $('#addresses tr td img').attr('src', '/images/RadioButton_Unselected.png');

            $(this).attr('src', '/images/RadioButton_Selected.png');
            $(this).closest('tr').addClass('default-address');
            $(this).removeClass('button-address-select');
    });

        $('button#addAddress').live('click', function() {
        $('div.saveCancelDiv').hide();
        scrollWindow('frmShippingAddress', 1000);
    });

    $('a#closeAddAddressForm').live('click', function() {
        $('div.saveCancelDiv').show();
    });

    $('#myAccount #frmShippingAddress').live('submit', function() {
        $.ajax({
            type : 'POST',
            url  : '/address',
            data : $(this).serialize(),
            success : function(response) {
                          $('#addresses').html($(response).find('#addresses'));
                          $('#closeAddAddressForm').click();
                          scrollWindow('tr_' + $('.default-address').attr('addressId'), 1000);
                      }
        });

        return false;
    });

        $('div#changeAddressSave').live('click', function() {
            var orderId   = $('.default-address').attr('orderid');
            var pincode   = $('.default-address').attr('pincode');
            var itemId    = $('.default-address').attr('itemid');
            var addressId = $('.default-address').attr('addressid');

            jQuery.ajax({
                        type    : 'GET',
                        url     : '/estimate/' + pincode + '_' + itemId,
                        success : function(response) {
                            response = JSON.parse(response);
                            var days = response.delivery_estimate;
                                if (days == -1 || response.is_cod_available_for_location == "false") {
                                        alert('This location is not serviceable.');
                                }
                                else {
                                        if (confirm('Delivery can take upto ' + days + ' business days after changing this address. Do you wish to continue ?')) {
                                            $.ajax({
                                                type    : 'POST',
                                                url     : '/order!modifyAddress',
                                                data    : 'orderId=' + orderId + "&addressId=" + addressId + "&days=" + days,
                                                success : function() {
                                                    document.location.href = "/order/" + orderId;
                            }
                                            });
                                        }
                                }
                        }
                });
        });
        
        $('#order_cancel').live('click', function() {
        $(this).hide();
        $('#frmCancelOrder').show();
    });
        
        $('#frmCancelOrder').validate({
                rules: {
                        email: {
                                required: true,
                                email: true
                        },
                        order_id: {
                                required: true,
                                digits: true
                        },
                        subject: {
                                required: true
                        }
                },
                messages: {
                        order_id: {
                                digits: "Order ID must be a valid number"
                        }
                }
        });
        
        $('#frmCancelOrder').live('submit', function() {
        $.ajax({
            type : 'POST',
            url  : '/contact-us',
            data : $(this).serialize(),
            success : function(response) {
                          $('#frmCancelOrder').hide();
                          $('#orderStatus').html('Cancellation Requested');
                          $('#orderStatus').css({'color': 'red'});
                      }
        });

        return false;
    });
        
        $('div#CancelButton').live('click', function() {
                $('label.error').remove();
        $('#frmCancelOrder').hide();
        $('#order_cancel').show();
        });
        
        $('.refund-recharge-button').click(function() {
                var orderId = $(this).attr('orderId');
                $('.refund-recharge-button').remove();
                $('#refundButtonDiv-' + orderId).html("Please Wait...");
                $('#refundRechargeForm-' + orderId).submit();
        });
        
});

/**
        Primary Address output for Shipping Address page
*/
function printPriAddress(str) {

        if(str == "default"){
                priName         = "Ankur Jain";
                priAdd1         = "Bldg. No.90890,";
                priAdd2         = "East Anjenya Temple Street, Basavangudi";
                priCity         = "Raipur";
                priPinCode      = "566786";
                priState        = "Madhya Pradesh";
                priMobile       = "9657598799";
                priLandline     = "080 - 56745687";
        }else if(str == "makePrimary"){
                // backup of primary address
                if($(".noAddress1:visible").length != 1){
                        arrBackupAdd.push($("#primaryAddress .address").html());
                }else{
                        $("#primaryAddress .addressButton").show();
                        $(".noAddress1").hide();
                }
                
                // Adding new entry as primary address
                priName         = $("#shippingAddress #txtName").val();
                priAdd1         = $("#shippingAddress #txtAddress").val();
                priAdd2         = $("#shippingAddress #txtAddress2").val();
                priCity         = $("#shippingAddress #city option:selected").val();
                priPinCode      = $("#shippingAddress #txtPinCode").val();
                priState        = $("#shippingAddress #state option:selected").val();
                priMobile       = $("#shippingAddress #txtMobile").val();
                priLandline     = $("#shippingAddress #txtAreaCode").val() + ' - ' + $("#shippingAddress #txtLandline").val();
        }
        
        tempPri = priName + "<br />" + priAdd1 + "<br />" + priAdd2 + "<br />" + priCity + "<br />" + priPinCode + "<br />" + priState + "<br /> Mobile: " + priMobile + "<br /> Landline: " + priLandline;
        
        if(str == "default"){
                primaryAddress = '<div class="address">';
                primaryAddress += tempPri;
                primaryAddress += "</div>";
                
                primaryAddress += '<div class="addressButton">';
                primaryAddress += '      <div class="imgDeleteButton deleteWidth">';
                primaryAddress += '             <div class="left">';
                primaryAddress += '             <div class="right">';
                primaryAddress += '                      <input type="button" onclick="delAddress(\'primaryAddress\');" value="Delete" class="button" />';
                primaryAddress += '             </div>';
                primaryAddress += '             </div>';
                primaryAddress += '     </div>';
                primaryAddress += '</div>';
                
                $("#primaryAddress").html(primaryAddress);
        }else if(str == "makePrimary"){
                $("#primaryAddress .address").html(tempPri);
        }
}

/**
        Other Address output for Shipping Address page
*/
function printOtherAddress(str){

        var otherAddress = "";
        var addressID    = "";
        
        var tempAdd;
        
        // No. of addresses to print
        if(str == "default"){
                len = 2; 
        }else{
        
                // backup of other addresses
                for(var i=0; i<arrOtherAddID.length; i++){
                        var temp = $("#" + arrOtherAddID[i] + " .address").html();
                        arrBackupAdd.push(temp);
                }
                
                // Add new id for new entry
                arrOtherAddID.push('address' + (arrOtherAddID.length + 1));
                
                len = arrOtherAddID.length;     
                
                // Reset address id container
                for(var i=0; i<len; i++){
                        arrOtherAddID.pop();
                }

                // If no address is visible, make it hidden
                if($(".noAddress2:visible").length > 0){
                        $(".noAddress2").hide();
                }
        }
        
        // Print the addresses
        
        if(len > 0){
                for(var i=0; i<len; i++){
                        if(str == "default"){
                                otherName         = "Ankur Jain " + (i+1);
                                otherAdd1         = "Bldg. No.90890,";
                                otherAdd2         = "East Anjenya Temple Street, Basavangudi";
                                otherCity         = "Raipur";
                                otherPinCode  = "566786";
                                otherState        = "Madhya Pradesh";
                                otherMobile   = "9657598799";
                                otherLandline = "080 - 56745687";
                                
                                tempAdd = otherName + "<br />" + otherAdd1 + "<br />" + otherAdd2 + "<br />" + otherCity + "<br />" + otherPinCode + "<br />" + otherState + "<br /> Mobile: " + otherMobile + "<br /> Landline: " + otherLandline;
                        }else {
                                // Add new entry as first in other address when save button is clicked
                                if((i == 0) && (str != "makePrimary")){ 
                                        otherName               = $("#shippingAddress #txtName").val();
                                        otherAdd1               = $("#shippingAddress #txtAddress").val();
                                        otherAdd2               = $("#shippingAddress #txtAddress2").val();
                                        otherCity               = $("#shippingAddress #city option:selected").val();
                                        otherPinCode    = $("#shippingAddress #txtPinCode").val();
                                        otherState              = $("#shippingAddress #state option:selected").val();
                                        otherMobile     = $("#shippingAddress #txtMobile").val();
                                        otherLandline   = $("#shippingAddress #txtAreaCode").val() + ' - ' + $("#shippingAddress #txtLandline").val();
                                        
                                        tempAdd = otherName + "<br />" + otherAdd1 + "<br />" + otherAdd2 + "<br />" + otherCity + "<br />" + otherPinCode + "<br />" + otherState + "<br /> Mobile: " + otherMobile + "<br /> Landline: " + otherLandline;
                                }else{
                                        if(str != "makePrimary"){
                                                tempAdd = arrBackupAdd[i-1];
                                        }else{
                                                tempAdd = arrBackupAdd[i];
                                        }
                                }
                        }
                        
                        addressID = 'address' + (i+1);
                        arrOtherAddID.push(addressID);
                                
                        otherAddress += '<div id="' + addressID + '">';
                        
                                // Address
                                otherAddress += '<div class="address">';
                                otherAddress += tempAdd;
                                otherAddress += '</div>';
                                
                                // Buttons
                                otherAddress += '<div class="addressButton">';
                                
                                        // Delete button
                                        otherAddress += '<div class="imgDeleteButton deleteWidth">';
                                        otherAddress += '       <div class="left">';
                                        otherAddress += '       <div class="right">';
                                        otherAddress += '               <input type="button" onclick="delAddress(\'' + addressID + '\');" value="Delete" class="button" />';
                                        otherAddress += '       </div>';
                                        otherAddress += '       </div>';
                                        otherAddress += '</div>';
                                
                                        // Make primary address button
                                        otherAddress += '<div class="imgEnableButton priAddressWidth">';
                                        otherAddress += '               <div class="left">';
                                        otherAddress += '               <div class="right">';
                                        otherAddress += '                        <input type="button" onclick="makePriAddress(\'' + addressID + '\');" value="Make Primary Address" class="button" />';
                                        otherAddress += '               </div>';
                                        otherAddress += '               </div>';
                                        otherAddress += '</div>';
                                        otherAddress += '<div class="clearBoth"></div>';
                                
                                otherAddress += '</div>';
                                
                                if(i < len-1){  otherAddress += '<br /><br />';  }
                        
                        otherAddress += '</div>';
                }
                
                $("#addressContainer").html(otherAddress);
                
                // Reset backup array
                len = arrBackupAdd.length;
                
                for(var i=0; i<len; i++){
                        arrBackupAdd.pop();
                }
        }else{
                $(".noAddress2").show();
        }
}

/**
        Reset Shiping address for Shipping Address page
*/
function resetShipingAddress(){
        $("#shippingAddress #txtName").val("");
        $("#shippingAddress #txtAddress").val("");
        $("#shippingAddress #txtAddress2").val("");
        $("#shippingAddress #city option[value='0']").attr('selected', 'selected');
        $("#shippingAddress #state option[value='0']").attr('selected', 'selected');
        $("#shippingAddress #txtPinCode").val("");
        $("#shippingAddress #txtMobile").val("");
        $("#shippingAddress #txtAreaCode").val("Area Code");
        $("#shippingAddress #txtLandline").val("");
}

/**
        Save address for Shipping Address page
*/
function saveAddress(str){
        
        if(str != "cancel"){
                // form validation
                var nameVal     = jQuery.trim($("#shippingAddress #txtName").val());
                var add1Val     = jQuery.trim($("#shippingAddress #txtAddress").val());
                var stateVal    = $("#shippingAddress #state option:selected").val();
                var cityVal     = $("#shippingAddress #city option:selected").val();
                var pinCodeVal  = jQuery.trim($("#shippingAddress #txtPinCode").val());
                var mobileVal   = jQuery.trim($("#shippingAddress #txtMobile").val());
                var areaCodeVal = jQuery.trim($("#shippingAddress #txtAreaCode").val());
                var landLineVal = jQuery.trim($("#shippingAddress #txtLandline").val());
                        
                if(nameVal.length == 0){
                        alert("Please enter name.");
                        
                        $("#shippingAddress #txtName").focus();
                        return false;   
                }else if(add1Val.length == 0){
                        alert("Please enter address.");
                        
                        $("#shippingAddress #txtAddress").focus();
                        return false;   
                }else if(stateVal == "0"){
                        alert("Please select state.");
                        
                        $("#shippingAddress #state").focus();
                        return false;   
                }else if(cityVal == "0"){
                        alert("Please select city.");
                        
                        $("#shippingAddress #city").focus();
                        return false;   
                }else if(pinCodeVal.length == 0){
                        alert("Please enter pin code.");
                        
                        $("#shippingAddress #txtPinCode").focus();
                        return false;   
                }else if(mobileVal.length == 0){
                        alert("Please enter mobile no.");
                        
                        $("#shippingAddress #txtMobile").focus();
                        return false;   
                }else if(areaCodeVal.length == 0 || areaCodeVal == "Area Code"){
                        alert("Please enter area code.");
                        
                        $("#shippingAddress #txtAreaCode").focus();
                        return false;   
                }else if(landLineVal.length == 0){
                        alert("Please enter landline no.");
                        
                        $("#shippingAddress #txtLandline").focus();
                        return false;   
                }else{
                        if(str == "makePrimary"){
                                printPriAddress(str);
                                
                                if(arrBackupAdd.length > 0){
                                        printOtherAddress(str);
                                }
                        }else if(str == "save"){
                                printOtherAddress(str);
                        }
                }
        }

        // Enable first addAddress button
        $("#addAddress1").removeClass('imgDisableButton').addClass('imgEnableButton');
        $("#addAddress1 input[disabled='']").removeAttr('disabled');
        
        // Show second addAddress button
        $("#addAddress2").show();
        
        // Hide add new address form
        $("#addNewAddress").hide();
        scrollWindow("shippingAddress", 1000);
        
        // Reset Form
        resetShipingAddress();
}

/**
        Add address for Shipping Address page
*/
function addNewAddress(){
        // Disable first addAddress button
        $("#addAddress1").removeClass('imgEnableButton').addClass('imgDisableButton');
        $("#addAddress1 input[name='addAddress1']").attr('disabled','disabled');
        
        // Hide second addAddress button
        $("#addAddress2").hide();
        
        // Show add new address form
        $("#addNewAddress").show();
        scrollWindow("addNewAddress", 2000);
        
        $("#addNewAddress #txtName").focus();
}

/**
        Make Primary address for Shipping Address page
*/
function makePriAddress(containerID){
        var arrTempAdd = new Array();
        var oldAddress = $("#primaryAddress .address").html(newAddress);
        
        // Make clicked other address as primary address
        var newAddress = $("#" + containerID + " .address").html();
        $("#primaryAddress .address").html(newAddress);
        
        // If primary address delete button is hidden, make it visible
        if($(".noAddress1:visible").length > 0){
                $("#primaryAddress .addressButton").show();
                $(".noAddress1").hide();
        }
        
        if(oldAddress != ""){
                arrTempAdd.push(oldAddress);
        
                // Shift Other addresses
                for(var i=0; i<arrOtherAddID.length; i++){
                        if(containerID != arrOtherAddID[i]){
                                var temp = $("#" + arrOtherAddID[i] + " .address").html();
                                arrTempAdd.push(temp);
                        }
                }
                
                // Display arranged other addresses
                for(var i=0; i<arrTempAdd.length; i++){
                        $("#" + arrOtherAddID[i] + " .address").html(arrTempAdd[i]);
                }
        }else{
                // Remove the clicked container because empty address cann't be swapped with this
                $("#" + containerID).remove();
                
                for(var i=0; i<arrOtherAddID.length; i++){
                        if(containerID == arrOtherAddID[i]){
                                arrOtherAddID.splice(i, 1);     
                        }
                }
                
                if(arrOtherAddID.length == 0){
                        $(".noAddress2").show();
                }
        }
        
        scrollWindow('shippingAddress', 1000);  
}

/**
        Delete address for Shipping Address page
*/
function delAddress(containerID){

        if(containerID == "primaryAddress"){
                if(arrOtherAddID.length > 0){
                        // insert 1st other address value to primary address container
                        var newAddress =  $("#" + arrOtherAddID[0] + " .address").html();
                        $("#" + containerID + " .address").html(newAddress);
                        
                        // remove 1st other address
                        $("#" + arrOtherAddID[0]).slideUp('slow', function(){
                                $(this).remove();
                        });
                
                        arrOtherAddID.shift(); // remove top element
                        
                        if(arrOtherAddID.length == 0){
                                $(".noAddress2").show();
                        }
                }else{
                        $("#" + containerID).slideUp('slow', function(){                                
                                $(".address", this).html("");
                                $(".addressButton", this).hide();
                                $(this).show();
                        });
                        
                        $(".noAddress1").show();
                }
        }else{
                $("#" + containerID).slideUp('slow', function(){
                        $(this).remove();
                });
                
                // remove deleted element from array
                for(var i=0; i<arrOtherAddID.length; i++){
                        if(containerID == arrOtherAddID[i]){
                                arrOtherAddID.splice(i, 1);
                        }
                }
                
                if(arrOtherAddID.length == 0){  
                        $(".noAddress2").show();        
                }
        }
        
}

/**
        Shipping Address page setup
*/
function shippingAddressSetup(){

        // Print Primary address
        
        // printPriAddress('default');

        // Print Other Address
        // printOtherAddress('default');

        // Add Address button
        $("#shippingAddress input[name=addAddress1]").click(function(){
                addNewAddress();
        });

        $("#shippingAddress input[name=addAddress2]").click(function(){
                addNewAddress();
        });

        // AreaCode default value hide
        $("#txtAreaCode").focus(function(){
                if($(this).val() == "Area Code"){
                        $(this).val("");
                }
        });

        // AreaCode default value show
        $("#txtAreaCode").blur(function(){
                if($(this).val() == ""){
                        $(this).val("Area Code");
                }
        });

        // Save and make primary address button
        $("#shippingAddress input[name=saveMakePriAddress]").click(function(){
                saveAddress('makePrimary');
        });

        // Save address button
        $("#shippingAddress input[name=saveAddress]").click(function(){
                saveAddress('save');
        });

        // cancel address button
        $("#shippingAddress input[name=cancelAddress]").click(function(){
                saveAddress('cancel');
        });
}

/**
        Personal Login Details page setup
*/
function personalDetailSetup(){
        
        preFilledValues(frmPersonal);
                
        // initialize arr
        for(var i=0; i<arrPersonalDetail.length; i++){
                arrPersonalDetail[i] = new Array(2);
                
                arrPersonalDetail[i][0] = false;        // This col specify whether its field value is changed or not
                
                // Following col will hold initial form data
                if(i == 0){ arrPersonalDetail[i][1] = perName; }
                else if(i == 1){ arrPersonalDetail[i][1] = perDateOfBirth; }
                else if(i == 2){ arrPersonalDetail[i][1] = perSex; }
                else if(i == 3){ arrPersonalDetail[i][1] = perCommEmail; }
                else if(i == 4){ arrPersonalDetail[i][1] = perSubscribe; }
                else if(i == 5){ arrPersonalDetail[i][1] = perPhone; }
        }
        
        // change status for name
        $(perFieldName).change(function(){                      
                if($(this).val() != arrPersonalDetail[0][1]){
                        perName = $(this).val();
                        arrPersonalDetail[0][0] = true;
                }else{
                        perName = arrPersonalDetail[0][1];
                        arrPersonalDetail[0][0] = false;
                }
                
                checkFieldChange(frmPersonal);
        });
        
        // change status for date  of birth
        $(perFieldDateOfBirth).change(function(){
                if($(this).val() != arrPersonalDetail[1][1]){
                        perDateOfBirth = $(this).val();
                        arrPersonalDetail[1][0] = true;
                }else{
                        perDateOfBirth = arrPersonalDetail[1][1];
                        arrPersonalDetail[1][0] = false;
                }
                checkFieldChange(frmPersonal);
        });
        


        
        // change status for sex
        $(perFieldSex).change(function(){
                if($(this).val() != arrPersonalDetail[2][1]){
                        perSex = $(this).val();
                        arrPersonalDetail[2][0] = true;
                }else{
                        perSex = arrPersonalDetail[2][1];
                        arrPersonalDetail[2][0] = false;
                }
                
                checkFieldChange(frmPersonal);
        });
        
        // change status for communication email
        $(perFieldCommEmail).change(function(){                 
                if($(this).val() != arrPersonalDetail[3][1]){
                        perCommEmail = $(this).val();
                        arrPersonalDetail[3][0] = true;
                }else{
                        perCommEmail = arrPersonalDetail[3][1];
                        arrPersonalDetail[3][0] = false;
                }
                
                checkFieldChange(frmPersonal);
        });
        
        // change status for subscribe
        $(perFieldSubscribe).change(function(){
                if($(this).attr('checked') != arrPersonalDetail[4][1]){
                        perSubscribe = $(this).attr('checked');
                        arrPersonalDetail[4][0] = true;
                }else{
                        perSubscribe = arrPersonalDetail[4][1];
                        arrPersonalDetail[4][0] = false;
                }
                
                checkFieldChange(frmPersonal);
        });


        // change status for phone
        $(perFieldPhone).change(function(){                     
                if($(this).val() != arrPersonalDetail[5][1]){
                        perPhone = $(this).val();
                        arrPersonalDetail[5][0] = true;
                }else{
                        perPhone = arrPersonalDetail[5][1];
                        arrPersonalDetail[5][0] = false;
                }
                
                checkFieldChange(frmPersonal);
        });
        
        // on click of save button
        $(frmPersonal).submit(function(){

                var nameVal      = jQuery.trim($(perFieldName).val());
                var commEmailVal = jQuery.trim($(perFieldCommEmail).val());
                
                if(nameVal.length == 0){
                        alert("Please enter name.");
                        
                        $(perFieldName).focus();
                        return false;   
                }else if(commEmailVal.length == 0){
                        alert("Please enter communication email.");
                        
                        $(perFieldCommEmail).focus();
                        return false;   
                }else if(!commEmailVal.match(emailExp)){
                        alert("Please enter valid communication email.");
                        
                        $(perFieldCommEmail).focus();
                        return false;   
                }else{
                        str = "Name : " + perName + "\n";
                        str += "Date Of Birth : " + perDateOfBirth + "\n";
                        str += "Sex : " + perSex + "\n";
                        str += "Communication Email : " + perCommEmail + "\n";
                        str += "Subscribe : " + perSubscribe + "\n";
                        str += "Phone : " + perPhone + "\n";
                }
        });
        
        // on click of cancel button
        $(frmPersonal + " input[name='cancel']").click(function(){
                blnCancelClicked = true;
                preFilledValues(frmPersonal); // reset values
        });
}

/**
        Login Detail page for registered user via shop2020 setup
*/
function registeredUserSetup(){
        preFilledValues(frmLogReg);
                
        tempLogEmail = logRegEmail;
        
        // change status for login email
        $(regFieldEmail).change(function(){                     
                if($(this).val() != tempLogEmail){
                        logRegEmail = $(this).val();
                        blnFieldChanged = true;
                }else{
                        logRegEmail = tempLogEmail;
                        blnFieldChanged = false;
                }
                
                checkFieldChange(frmLogReg);
        });
        
        // change status for old password
        $(regFieldOldPass).change(function(){   
                blnFieldChanged = true;
                checkFieldChange(frmLogReg);
        });
        
        // change status for new password
        $(regFieldNewPass).change(function(){   
                blnFieldChanged = true;
                checkFieldChange(frmLogReg);
        });
        
        // change status for confirm password
        $(regFieldConPass).change(function(){   
                blnFieldChanged = true;
                checkFieldChange(frmLogReg);
        });
        
        // on click of save button
        $(frmLogReg).submit(function(){
                var emailVal     = jQuery.trim($(regFieldEmail).val());
                var oldPassVal   = jQuery.trim($(regFieldOldPass).val());
                var newPassVal   = jQuery.trim($(regFieldNewPass).val());
                var conPassVal   = jQuery.trim($(regFieldConPass).val());
                
                if(emailVal.length == 0){
                        alert("Please enter Login ID.");
                        
                        $(regFieldEmail).focus();
                        return false;   
                }else if(!emailVal.match(emailExp)){
                        alert("Please enter valid Login ID.");
                        
                        $(regFieldEmail).focus();
                        return false;   
                }else if(oldPassVal.length == 0){
                        alert("Please enter old password.");
                        
                        $(regFieldOldPass).focus();
                        return false;   
                }else if(newPassVal.length == 0){
                        alert("Please enter new password.");
                        
                        $(regFieldNewPass).focus();
                        return false;   
                }else if(newPassVal.length < 6){
                        alert("Password length should be minimum 6 characters long!");
                        
                        $(regFieldNewPass).focus();
                        return false;   
                }else if(conPassVal.length == 0){
                        alert("Please enter confirm password.");
                        
                        $(regFieldConPass).focus();
                        return false;   
                }else if(conPassVal.length < 6){
                        alert("Password length should be minimum 6 characters long!");
                        
                        $(regFieldConPass).focus();
                        return false;   
                }else if(newPassVal != conPassVal){
                        alert("Confirm password doesn't match with new password!");
                        
                        $(regFieldConPass).focus();
                        return false;   
                        
                }else{
                        str = "Login ID : " + logRegEmail + "\n";
                        str += "Old Password : " + oldPassVal + "\n";
                        str += "New Password : " + newPassVal + "\n";
                }
                
        });
                                                                   
        // on click of cancel button
        $(frmLogReg + " input[name='cancel']").click(function(){
                blnCancelClicked = true;
                preFilledValues(frmLogReg);     // reset values
        });
}

/**
        Login Detail page for registered user via facebook setup
*/
function registeredUserFBSetup(){
        preFilledValues(frmLogRegFB);
        
        tempLogEmail = logRegFBEmail;
        
        // change status for login email
        $(regFieldFBEmail).change(function(){                   
                if($(this).val() != tempLogEmail){
                        logRegFBEmail = $(this).val();
                        blnFieldChanged = true;
                }else{
                        logRegFBEmail = tempLogEmail;
                        blnFieldChanged = false;
                }
                
                checkFieldChange(frmLogRegFB);
        });
        
        // change status for old password
        $(regFieldFBPass).change(function(){    
                blnFieldChanged = true;
                checkFieldChange(frmLogRegFB);
        });
        
        // on click of save button
        $(frmLogRegFB).submit(function(){
                var emailVal     = jQuery.trim($(regFieldFBEmail).val());
                var passVal      = jQuery.trim($(regFieldFBPass).val());
                
                if(emailVal.length == 0){
                        alert("Please enter Login ID.");
                        
                        $(regFieldFBEmail).focus();
                        return false;   
                }else if(!emailVal.match(emailExp)){
                        alert("Please enter valid Login ID.");
                        
                        $(regFieldFBEmail).focus();
                        return false;   
                }else if(passVal.length == 0){
                        alert("Please enter password.");
                        
                        $(regFieldFBPass).focus();
                        return false;   
                }else{
                        str = "Facbook Login : " + logRegFBEmail + "\n";
                        str += "Old Password : " + passVal + "\n";
                }
                
        });
        
        // on click of cancel button
        $(frmLogRegFB + " input[name='cancel']").click(function(){
                blnCancelClicked = true;
                preFilledValues(frmLogRegFB);   // reset values
        });
}

/**
        Pre-filled values of Personal & Login Details page
*/
function preFilledValues(frm){
        
        if(frm == "#frmPersonalDetails"){
                
                if(blnCancelClicked){
                        perName          = arrPersonalDetail[0][1];
                        perDateOfBirth   = arrPersonalDetail[1][1];
                        perSex           = arrPersonalDetail[2][1];
                        perCommEmail = arrPersonalDetail[3][1];
                        perSubscribe = arrPersonalDetail[4][1];
                        perPhone = arrPersonalDetail[5][1];
                        
                        blnCancelClicked = false;
                }
                
                $(perFieldName).val(perName);
                
                $(perFieldDateOfBirth).val(perDateOfBirth);
                
                $(perFieldPhone).val(perPhone);
                
                $(frmPersonal + " input[value='" + perSex + "']").attr("checked", "checked");
                
                $(perFieldCommEmail).val(perCommEmail);
                
                if(perSubscribe){ $(perFieldSubscribe).attr("checked", "checked");      }
                
                disableSaveCancel(frm);
                
        }else if(frm == "#frmRegisUser"){
                
                if(blnCancelClicked){ 
                        logRegEmail     = tempLogEmail; 
                        
                        $(regFieldCaptcha).val("");
                        $(regFieldOldPass).val("");
                        $(regFieldNewPass).val("");
                        $(regFieldConPass).val("");
                        
                        blnCancelClicked = false;
                }
                
                $(regFieldEmail).val(logRegEmail);
                
                disableSaveCancel(frm);
                
        }else if(frm == "#frmFacebookUser"){

                if(blnCancelClicked){ 
                        logRegFBEmail   = tempLogEmail; 
                        
                        $(regFieldFBEmail).val("");
                        $(regFieldFBPass).val("");
                        
                        blnCancelClicked = false;
                }
                
                $(regFieldFBEmail).val(logRegFBEmail);
                
                disableSaveCancel(frm);
        }
        
}

/**
        Check if any field is changed for Personal & Login Details page, if yes then enable save & cancel buttons
*/
function checkFieldChange(frm){
        
        if(frm == "#frmPersonalDetails"){
                for(var i=0; i<arrPersonalDetail.length; i++){
                        if(arrPersonalDetail[i][0]){
                                blnFieldChanged = true;
                        }
                }
        }
        
        // if field changed enable buttons or else disable them
        if(blnFieldChanged){
                enableSaveCancel(frm);
        }else{
                disableSaveCancel(frm);
        }
        
        blnFieldChanged = false;
}

/**
        Enable save & cancel button for Personal & Login Details page
*/
function enableSaveCancel(frm){
        
        var frmButtonID;
        
        if(frm == "#frmPersonalDetails"){
                frmButtonID = "#formButtons";
        }else if(frm == "#frmRegisUser"){
                frmButtonID = "#formButtons1";
        }else if(frm == "#frmFacebookUser"){
                frmButtonID = "#formButtons2";
        }
        
        $(frm + " " + frmButtonID + " .imgDisableButton").removeClass('imgDisableButton').addClass('imgEnableButton');
        $(frm + " " + frmButtonID + " input[disabled='']").removeAttr('disabled');
}

/**
        Disable save & cancel button for Personal & Login Details page
*/
function disableSaveCancel(frm){
        
        var frmButtonID;
        
        if(frm == "#frmPersonalDetails"){
                frmButtonID = "#formButtons";
        }else if(frm == "#frmRegisUser"){
                frmButtonID = "#formButtons1";
        }else if(frm == "#frmFacebookUser"){
                frmButtonID = "#formButtons2";
        }
        
        $(frm + " " + frmButtonID + " .imgEnableButton").removeClass('imgEnableButton').addClass('imgDisableButton');
        $(frm + " " + frmButtonID + " input").attr("disabled", "disabled");
}

/** 
        Scroll window either to top or bottom
*/
function scrollWindow(id, delay){
        $('html, body').animate({
                scrollTop: $("#" + id).offset().top
        }, delay);
}

/** 
        Show Shipment details on click of AWBNo. link
*/
function showShipmentDetails(value, providerName)       {
        jQuery.ajax({
                type: "GET",
                url: "/" + providerName.toLowerCase() + "-updates/" + value,
                success: function(msg)  {
                        $("#orderShippingStatus").html(msg);
                        $("#shipmentDetails").show();
                        $("#shipmentDetails .awbNo").text(value);

                        scrollWindow('shipmentDetails', 2000);
                }
        });
}

/** 
        Close Shipment details on click of close button
*/
function closeShipmentDetails(){
        $("#shipmentDetails").hide();
        
        scrollWindow('myAccount', 1000);
}