/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


function primatyContactsForm(){
    dojo.xhrGet ({
        // Location of the action content we want to grab
        url: "/mygenie/buyer/profile/primaryContactsForm.do",
         preventCache:true,
        // Called when the page loaded successfully

        load: function (data) {
            dojo.byId('primaryContactView').style.display='none';
            dojo.byId('primaryContactForm').innerHTML = data;
            dojo.byId('primaryContactForm').style.display='block'
        },

        // Called if there was an error (such as a 404 response)
        error: function (data) {
            console.error('Error: ', data);

        }
    });


}


function updatePrimaryContactsDetails(){
    var error=validateForm_primarycontact();
    if(!error){
        return ;
    }
    dojo.xhrPost({
        url: "/mygenie/buyer/profile/primaryContactsUpdate.do",
        mimetype: "text/html",


        load: function(response, ioArgs){

            dojo.byId('primaryContactForm').style.display='none';
            dojo.byId('primaryContactView').innerHTML = response;
            dojo.byId('primaryContactView').style.display='block'

            return response;
        },
        error: function(response, ioArgs){
            dojo.byId('primaryContactView').style.display='block'
            dojo.byId("primaryContactView").innerHTML =
            "An error occurred, with response: " + response;

            return response;
        },


        form:"primarycontact"
    });

}



function companeyInfoForm(){
    dojo.xhrGet ({
        // Location of the action content we want to grab
        url: "/mygenie/buyer/profile/companeyInfoForm.do",
         preventCache:true,
        // Called when the page loaded successfully

        load: function (data) {
            dojo.byId('companeyInfoView').style.display='none';
            dojo.byId('companeyInfoForm').innerHTML = data;
            dojo.byId('companeyInfoForm').style.display='block'
        },

        // Called if there was an error (such as a 404 response)
        error: function (data) {
            console.error('Error: ', data);

        }
    });


}

function companeyInfoUpdate(){
    var error=validateForm_companeyInfo();
    if(!error){
        return  ;
    }

    dojo.xhrPost({
        url: "/mygenie/buyer/profile/companeyInfoUpdate.do",
        mimetype: "text/html",


        load: function(response, ioArgs){

            dojo.byId('companeyInfoForm').style.display='none';
            dojo.byId('companeyInfoView').innerHTML = response;
            dojo.byId('companeyInfoView').style.display='block'

            return response;
        },
        error: function(response, ioArgs){
            dojo.byId('companeyInfoView').style.display='block'
            dojo.byId("companeyInfoView").innerHTML =
            "An error occurred, with response: " + response;

            return response;
        },


        form:"companeyInfo"
    });

}


function changePassword(oldPasswordTextBox,newPasswordTextBox,confirmnewPasswordTextBox,targetDiv){
    var oldPassword = dojo.byId(oldPasswordTextBox).value;
    var newPassword = dojo.byId(newPasswordTextBox).value;
    var conPassword = dojo.byId(confirmnewPasswordTextBox).value;
    target=targetDiv;
    dojo.byId(oldPasswordTextBox).value='';
    dojo.byId(newPasswordTextBox).value='';
    dojo.byId(confirmnewPasswordTextBox).value='';
    if(oldPassword==''||newPassword==''){
        alert('Old and new password should not be blank');
        return;
    }
    if(newPassword != conPassword) {
        alert("New Password and confirm password should be same");
        return;
    }
    var response = service.changePassword(oldPassword,newPassword);
    response.addCallback(handleResponse);

}
var handleResponse=function(result){

    if(result=='success')  {
        alert("Password Changed Successfully");
        dojo.byId(target).style.display='none';

    }else if(result=='invalid'){
        alert("Invalid Old Password");
    }
};


function checkAvailability(field){


    clearErrorMessages(field.elements['login.username']);
    clearErrorLabels(field);

    var fieldval =  field.elements['login.username'].value;
    var error = "Invalid Username. ";
    if(fieldval.length<=4) {
        error="Minimum 4 characters."
    }
    if (fieldval == '' || !fieldval.match("^[a-zA-Z][A-Za-z0-9\\.\\@\\*\\#\\%\\_\\-]{3,15}$"))
    {
        error="Allowed : Minimum 4 alphabets, numbers, @-*_#.%"
        addError(field.elements['login.username'], error);
        errors = true;
    }else{
        var response= service.checkAvailability(fieldval);
        target=field;
        response.addCallback(handleavailablity);
    }

}
var handleavailablity = function(result){
    fieldgo= document.getElementById('go')
    if (target.elements['login.username']) {
        field = target.elements['login.username'];

        var error = "Not Available.";
        if (!result) {
            addError(field, error);
            fieldgo.disabled=true;
            errors = true;
        }else{
            availabilityCheck(field,'Available');
            fieldgo.disabled=false;
        }
    }



};

function checkEmailAvailability(field){


    clearErrorMessages(field.elements['login.email']);
    clearErrorLabels(field);

    var fieldval =  field.elements['login.email'].value;
    var error = "Invalid Email.";
    if (fieldval == '' || fieldval.match(/\b(^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-])+(\.[A-Za-z0-9-]+)*((\.[A-Za-z0-9]{2,})|(\.[A-Za-z0-9]{2,}\.[A-Za-z0-9]{2,}))$)\b/gi)==null)
    {

        addError(field.elements['login.email'], error);
        errors = true;

    }else{
       var response= service.checkEmailAvailability(fieldval);
        target=field;
        response.addCallback(handleEmailAvailablity);
    }

}
var handleEmailAvailablity = function(result){
    fieldgo= document.getElementById('go')
    if (target.elements['login.email']) {
        field = target.elements['login.email'];

        var error = "Not Available.";
        if (!result) {
            addError(field, error);
            fieldgo.disabled=true;
            errors = true;
        }else{
            availabilityCheck(field,'Available');
            fieldgo.disabled=false;
        }
    }



};


function limitText(limitField, limitNum, target) {
    //limitField = document.getElementById(limitFieldId);
    textValue = updateSpaceForFirefox(limitField.value);
    var val = textValue.substring(0, limitNum);
    var reming=parseInt(limitNum)-parseInt(textValue.length)

    if (textValue.length > limitNum) {
        reming=1;
        limitField.value=val;
        limitField.blur();
        return ;
    }
    document.getElementById(target).innerHTML=reming;
}


function updateSpaceForFirefox(msg) {
    var browser=navigator.appName;
    if (browser == "Netscape") {
        msg = msg.replace(/\n/g,"\r\n");
    }
    return msg;
}


function validate(frm){
    validateInput_login_confirmpasswordd();
    validateForm_saveBuyer();
    
    var fieldval =  frm.elements['login.username'].value;
    var error="Invalid Username."
    if(fieldval.length<=4) {
        error="Minimum 4 characters."
    }

    field=frm.elements['login.username'];
    fieldgo= document.getElementById('go')

    if(fieldval==''){

        clearErrorMessages(field);
        addError(field, error);
        errors = true;
        fieldgo.disabled=true;
        field.focus();
    }

    var fieldval1 =  frm.elements['login.email'].value;
      error ="Enter Email Id"
    field1=frm.elements['login.email'];
    fieldgo= document.getElementById('go')

    if(fieldval1==''){

        clearErrorMessages(field1);
        addError(field1, error);
        errors = true;
        fieldgo.disabled=true;
        field.focus();
    }


}


function key_pressed(e) {
    var evt = typeof window.event != 'undefined' ? window.event : e;
    var val = evt.charCode;
    var passfield = form.elements['login.confirmPassword'];
    if (evt.ctrlKey && val == 118) {
        passfield.value="";
        return;
    }
}
function validateInput_login_confirmpasswordd(){
    if (form.elements['login.confirmPassword']) {
        var field = form.elements['login.confirmPassword'];
        var passfield = form.elements['login.password'];

        clearErrorMessages(field);
        var error;
        if (field.value != null && (field.value == "" || field.value.replace(/^\s+|\s+$/g,"").length == 0)) {
            error = "Confirm password is a required field.";
            addError(field, error);
            errors = true;
        }else if(field.value != null && (field.value == "" || field.value!=passfield.value)){

            error = "Password and Confirm Password should be same";
            addError(field, error);
            errors = true;
        }else
        {
            addRight(field);
        }
    }



}




function show(divId){
    dojo.byId(divId).style.display='block';
}
function hide(divId){
    dojo.byId(divId).style.display='none';
}

function hideandshow(hdivId,sdivId){
    dojo.byId(hdivId).style.display='none';
    dojo.byId(sdivId).style.display='block';
}

//Buyer Primary contacts edits validation stuff

// field name: user.firstName
// validator name: regex
function validateInput_user_firstName() {
    form = document.getElementById("primarycontact");
    var errors = false;
    if (form.elements['user.firstName']) {
        field = form.elements['user.firstName'];
        clearErrorMessages(field);
        var error = "Required Character only";
        if (field.value != null && !field.value.match("^[a-zA-Z]+$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: user.lastName
// validator name: regex
function validateInput_user_lastName() {
    form = document.getElementById("primarycontact");
    var errors = false;

    if (form.elements['user.lastName']) {
        field = form.elements['user.lastName'];
        clearErrorMessages(field);
        var error = "Required Character only";
        if (field.value != null && !field.value.match("^[a-zA-Z]+$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: user.cellPhoneNumber
// validator name: regex
function validateInput_user_cellPhoneNumber() {
    form = document.getElementById("primarycontact");
    var errors = false;

    if (form.elements['user.cellPhoneNumber']) {
        field = form.elements['user.cellPhoneNumber'];
        clearErrorMessages(field);
        var error = "Should be 10 to 15 digits Numeric";
        if (field.value != null && !field.value.match("^[0-9\\\\.\\\\(\\\\)\\\\\\\\\\\\+\\\\-]{10,12}$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: user.landlineNumber
// validator name: regex
function validateInput_user_landlineNumber() {
    form = document.getElementById("primarycontact");
    var errors = false;

    if (form.elements['user.landlineNumber']) {
        field = form.elements['user.landlineNumber'];
        clearErrorMessages(field);
        var error = "Invalid";
        if (field.value != null && !field.value.match("^[0-9.,'#-/+]+[0-9.,'#-/+\s]+$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: user.secondaryEmail
// validator name: email
function validateInput_user_secondaryEmail() {
    form = document.getElementById("primarycontact");
    var errors = false;

    if (form.elements['user.secondaryEmail']) {
        field = form.elements['user.secondaryEmail'];
        clearErrorMessages(field);
        var error = "Invalid";
        if (field.value != null && field.value.length > 0 && field.value.match(/\b(^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-])+(\.[A-Za-z0-9-]+)*((\.[A-Za-z0-9]{2,})|(\.[A-Za-z0-9]{2,}\.[A-Za-z0-9]{2,}))$)\b/gi)==null) {
            addError(field, error);
            errors = true;
        }else if(field.value == ""){
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: user.designation
// validator name: regex
function validateInput_user_designation() {
    form = document.getElementById("primarycontact");
    var errors = false;

    if (form.elements['user.designation']) {
        field = form.elements['user.designation'];
        clearErrorMessages(field);
        var error = "Invalid";
        if (field.value != null && !field.value.match("^[a-zA-Z\\\\.\\\\ \\\\(\\\\)\\\\_\\\\-]{1,20}$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: customer.location.address1
// validator name: required
function validateInput_customer_location_address1() {
    form = document.getElementById("primarycontact");
    var errors = false;

    if (form.elements['customer.location.address1']) {
        field = form.elements['customer.location.address1'];
        clearErrorMessages(field);
        var error = "Invalid";
        if (field.value == "") {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: customer.location.city
// validator name: regex
function validateInput_customer_location_city() {
    form = document.getElementById("primarycontact");
    var errors = false;

    if (form.elements['customer.location.city']) {
        field = form.elements['customer.location.city'];
        clearErrorMessages(field);
        var error = "Enter Valid city";
        if (field.value != null && !field.value.match("^[a-zA-Z\\\\ \\\\]{0,20}$")) {
            addError(field, error);
            errors = true;
        }if (field.value ==""){
            addError(field, error);
            errors = true;
        }
        else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: customer.location.province
// validator name: regex
function validateInput_customer_location_province() {
    form = document.getElementById("primarycontact");
    var errors = false;

    if (form.elements['customer.location.province']) {
        field = form.elements['customer.location.province'];
        clearErrorMessages(field);
        var error = "Enter Valid state";
        if (field.value != null && !field.value.match("^[a-zA-Z\\\\ \\\\]{0,20}$")) {
            addError(field, error);
            errors = true;
        }if (field.value ==""){
            addError(field, error);
            errors = true;
        }
        else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: customer.location.postalCode
// validator name: regex
function validateInput_customer_location_postalCode() {
    form = document.getElementById("primarycontact");
    var errors = false;

    if (form.elements['customer.location.postalCode']) {
        field = form.elements['customer.location.postalCode'];
        clearErrorMessages(field);
        var error = "Invalid";
        if (field.value != null && !field.value.match("^[a-zA-Z0-9]{1,15}$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}


function validateForm_primarycontact() {
    form = document.getElementById("primarycontact");
    clearErrorMessages(form);
    clearErrorLabels(form);

    var errors = false;
    // field name: user.firstName
    // validator name: regex
    if (form.elements['user.firstName']) {
        field = form.elements['user.firstName'];
        error = "Required Character only";
        if (field.value != null && !field.value.match("^[a-zA-Z]+$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    // field name: user.lastName
    // validator name: regex
    if (form.elements['user.lastName']) {
        field = form.elements['user.lastName'];
        error = "Required Character only";
        if (field.value != null && !field.value.match("^[a-zA-Z]+$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    // field name: user.cellPhoneNumber
    // validator name: regex
    if (form.elements['user.cellPhoneNumber']) {
        field = form.elements['user.cellPhoneNumber'];
        error = "Should be 10 to 15 digits Numeric";
        if (field.value != null && !field.value.match("^[0-9\\\\.\\\\(\\\\)\\\\\\\\\\\\+\\\\-]{10,12}$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    // field name: user.landlineNumber
    // validator name: regex
    if (form.elements['user.landlineNumber']) {
        field = form.elements['user.landlineNumber'];
        error = "Invalid";
        if (field.value != null && !field.value.match("^[0-9.,'#-/+]+[0-9.,'#-/+\s]+$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    // field name: user.secondaryEmail
    // validator name: email
    if (form.elements['user.secondaryEmail']) {
        field = form.elements['user.secondaryEmail'];
        error = "Invalid";
        if (field.value != null && field.value.length > 0 && field.value.match(/\b(^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-])+(\.[A-Za-z0-9-]+)*((\.[A-Za-z0-9]{2,})|(\.[A-Za-z0-9]{2,}\.[A-Za-z0-9]{2,}))$)\b/gi)==null) {
            addError(field, error);
            errors = true;
        }else if(field.value == ""){
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    // field name: user.designation
    // validator name: regex
    if (form.elements['user.designation']) {
        field = form.elements['user.designation'];
        error = "Invalid";
        if (field.value != null && !field.value.match("^[a-zA-Z\\\\.\\\\ \\\\(\\\\)\\\\_\\\\-]{1,20}$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    // field name: customer.location.address1
    // validator name: required
    if (form.elements['customer.location.address1']) {
        field = form.elements['customer.location.address1'];
        error = "Invalid";
        if (field.value == "") {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    // field name: customer.location.city
    // validator name: regex
    if (form.elements['customer.location.city']) {
        field = form.elements['customer.location.city'];
        error = "Enter Valid city";
        if (field.value != null && !field.value.match("^[a-zA-Z\\\\ \\\\]{0,20}$")) {
            addError(field, error);
            errors = true;
        }if (field.value ==""){
            addError(field, error);
            errors = true;
        }

        else{
            addRight(field);
        }
    }
    // field name: customer.location.province
    // validator name: regex
    if (form.elements['customer.location.province']) {
        field = form.elements['customer.location.province'];
        error = "Enter Valid state";
        if (field.value != null && !field.value.match("^[a-zA-Z\\\\ \\\\]{0,20}$")) {
            addError(field, error);
            errors = true;
        }if (field.value ==""){
            addError(field, error);
            errors = true;
        }
        else{
            addRight(field);
        }
    }
    // field name: customer.location.postalCode
    // validator name: regex
    if (form.elements['customer.location.postalCode']) {
        field = form.elements['customer.location.postalCode'];
        error = "Invalid";
        if (field.value != null && !field.value.match("^[a-zA-Z0-9]{1,15}$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }

    return !errors;
}

//Buyer Companey Info edit validation stuff
// field name: customer.companyname
// validator name: regex
function validateInput_customer_companyname() {
    form = document.getElementById("companeyInfo");
    var errors = false;
    if (form.elements['customer.companyname']) {
        field = form.elements['customer.companyname'];
        clearErrorMessages(field);
        var error = "Enter Valid Company Name";
        if (field.value != null && !field.value.match("^[a-zA-Z0-9\\\\.\\\\ \\\\(\\\\)\\\\+\\\\$\\\\,\\\\#\\\\-]{1,250}$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: customer.website
// validator name: regex
function validateInput_customer_website() {
    form = document.getElementById("companeyInfo");
    var errors = false;
    if (form.elements['customer.website']) {
        field = form.elements['customer.website'];
        clearErrorMessages(field);
        var error = "Invalid";
        if (field.value != null && !field.value.match("^http://[a-zA-Z0-9]+[.]+[a-zA-Z0-9]+[\\s\\S]+[a-zA-Z0-9]+$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: customer.annualRevenue
// validator name: regex
function validateInput_customer_annualRevenue() {
    form = document.getElementById("companeyInfo");
    var errors = false;
    if (form.elements['customer.annualRevenue']) {
        field = form.elements['customer.annualRevenue'];
        clearErrorMessages(field);
        var error = "Invalid";
        if (field.value != null && !field.value.match("^[0-9]+$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}
// field name: customer.customerprofile.description
// validator name: required
function validateInput_customer_customerprofile_description() {
    form = document.getElementById("companeyInfo");
    var errors = false;
    if (form.elements['customer.customerprofile.description']) {
        field = form.elements['customer.customerprofile.description'];
        clearErrorMessages(field);
        var error = "Invalid";
        if (field.value=="") {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    return !errors;
}



function validateForm_companeyInfo() {
    form = document.getElementById("companeyInfo");
    clearErrorMessages(form);
    clearErrorLabels(form);

    errors = false;
    // field name: customer.companyname
    // validator name: regex
    if (form.elements['customer.companyname']) {
        field = form.elements['customer.companyname'];
        var error = "Enter Valid Company Name";
        if (field.value != null && !field.value.match("^[a-zA-Z0-9\\\\.\\\\ \\\\(\\\\)\\\\+\\\\$\\\\,\\\\#\\\\-]{1,250}$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    // field name: customer.website
    // validator name: regex
    if (form.elements['customer.website']) {
        field = form.elements['customer.website'];
        error = "Invalid";
        if (field.value != null && !field.value.match("^http://[a-zA-Z0-9]+[.]+[a-zA-Z0-9]+[\\s\\S]+[a-zA-Z0-9]+$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    // field name: customer.annualRevenue
    // validator name: regex
    if (form.elements['customer.annualRevenue']) {
        field = form.elements['customer.annualRevenue'];
        error = "Invalid";
        if (field.value != null && !field.value.match("^[0-9]+$")) {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }
    // field name: customer.customerprofile.description
    // validator name: required
    if (form.elements['customer.customerprofile.description']) {
        field = form.elements['customer.customerprofile.description'];
        error = "Invalid";
        if (field.value == "") {
            addError(field, error);
            errors = true;
        }else{
            addRight(field);
        }
    }

    return !errors;
}




