﻿//validation on 3 types of registration
var start = 'ctl00_content_';
var basicFields = new Array('txt_FirstName','txt_LastName','txt_Address','txt_Username','txt_Password','txt_ConfirmPassword','txt_Email','txt_SecurityQuestion','txt_Answer');
var operatorFields = new Array('txt_Company','txt_BriefDescription');
var operatorSpecific = new Array('txt_ContactPhoneLine1','txt_ContactPhoneLine2');
var operatorSpecific2 = new Array('txt_LineDescription1','txt_LineDescription2');
var buyerFields = new Array();
var jobSeekerFields = new Array();
var errorControl = start + 'lbl_ErrorSummary';
var who = start + 'hdn_UserType';
var defaultStyle = '2px inset';
var errorBorder = '1px solid red';
/////////////////////////////////////////////////////////////////////////////
function $() {
      var elements = new Array();
      for (var i = 0 ; i < arguments.length ; i++) {
            var element = arguments[i];
            if ( typeof element == 'string' ) element = document.getElementById(element);
            if ( arguments.length == 1 ) return element;
            elements.push( element );
      }
      return elements;
}
/////////////////////////////////////////////////////////////////////////////
function validateBasicData(){
    var msg = '';
    
//    //surname
//    if($(start+'txt_Surname').value == ''){
//        msg += '- Enter surname<br />';
//        $(start+'txt_Surname').style.border = errorBorder;
//    }else{
//        $(start+'txt_Surname').style.border = defaultStyle;
//        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
//    }
    //firstname
    if($(start+'txt_FirstName').value == ''){
        msg += '- Enter firstname<br />';
        $(start+'txt_FirstName').style.border = errorBorder;
    }else{
        $(start+'txt_FirstName').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    //lastname
    if($(start+'txt_LastName').value == ''){
        msg += '- Enter lastname<br />';
        $(start+'txt_LastName').style.border = errorBorder;
    }else{
        $(start+'txt_LastName').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    //address
    if($(start+'txt_Address').value == ''){
        msg += '- Enter address<br />';
        $(start+'txt_Address').style.border = errorBorder;
    }else{
        $(start+'txt_Address').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    //username
    if($(start+'txt_Username').value == ''){
        msg += '- Enter username<br />';
        $(start+'txt_Username').style.border = errorBorder;
    }else{
        $(start+'txt_Username').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    //password
    if($(start+'txt_Password').value == ''){
        msg += '- Enter password<br />';
        $(start+'txt_Password').style.border = errorBorder;
    }else{
        $(start+'txt_Password').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    //confirm password
    if($(start+'txt_ConfirmPassword').value == ''){
        msg += '- Confirm password<br />';
        $(start+'txt_ConfirmPassword').style.border = errorBorder;
    }else{
        $(start+'txt_ConfirmPassword').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    //email
    if($(start+'txt_Email').value == ''){
        msg += '- Enter a valid email address<br />';
        $(start+'txt_Email').style.border = errorBorder;
    }else{
        $(start+'txt_Email').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    //security
    if($(start+'txt_SecurityQuestion').value == ''){
        msg += '- Enter a security question<br />';
        $(start+'txt_SecurityQuestion').style.border = errorBorder;
    }else{
        $(start+'txt_SecurityQuestion').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    //answer
    if($(start+'txt_Answer').value == ''){
        msg += '- Enter a security answer<br />';
        $(start+'txt_Answer').style.border = errorBorder;
    }else{
        $(start+'txt_Answer').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    
    return msg;
}
/////////////////////////////////////////////////////////////////////////////
function validateOperatorFields(){
    var operatorMSG = '';
    
    //company
    if($(start+'txt_Company').value == ''){
        operatorMSG += '- Enter company name<br />';
        $(start+'txt_Company').style.border = errorBorder;
    }else{
        $(start+'txt_Company').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    //brief
    if($(start+'txt_BriefDescription').value == ''){
        operatorMSG += '- Enter a brief description<br />';
        $(start+'txt_BriefDescription').style.border = errorBorder;
    }else{
        $(start+'txt_BriefDescription').style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    
    return operatorMSG;
}
/////////////////////////////////////////////////////////////////////////////
function operatorSpecificValidation(){
    //var error = false;
    var osv = '';
    //alert(basicFields.length);
    
    //Phone Line1
    if($(start + operatorSpecific[0]).value != '' && $(start + operatorSpecific2[0]).value == ''){
        osv += '- Enter Line Description for Phone Line 1<br />';
        $(start+ operatorSpecific2[0]).style.border = errorBorder;
    }else{
        $(start+ operatorSpecific2[0]).style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    //Phone Line2
    if($(start + operatorSpecific[1]).value != '' && $(start + operatorSpecific2[1]).value == ''){
        osv += '- Enter Line Description for Phone Line 2<br />';
        $(start+ operatorSpecific2[1]).style.border = errorBorder;
    }else{
        $(start+ operatorSpecific2[1]).style.border = defaultStyle;
        /*this.style.borderColorLeft=''; //may need this but not sure [IE] */
    }
    return osv;
}
/////////////////////////////////////////////////////////////////////////////
function validatePasswords(){//alert($(start+basicFields[5]).value);alert($(start+basicFields[6]).value);
    var vp = '';
    if( $(start+'txt_Password').value != $(start+'txt_ConfirmPassword').value ){
        vp = '- Passwords are not the same<br />';
        $(start+'txt_Password').style.border = errorBorder;
        $(start+'txt_ConfirmPassword').style.border = errorBorder;
    }else{
        $(start+'txt_Password').style.border = defaultStyle;
        $(start+'txt_ConfirmPassword').style.border = defaultStyle;
    }
    
    return vp;
}
/////////////////////////////////////////////////////////////////////////////
function validateEmail(){
   var emailControl = $(start+'txt_Email').value;
   var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
   return emailPattern.test(emailControl); 
}
/////////////////////////////////////////////////////////////////////////////
function validateJobSeekerFields(){}
/////////////////////////////////////////////////////////////////////////////
function validateBuyerFields(){}
/////////////////////////////////////////////////////////////////////////////
function regValidate(){
    var isValid = true;
    var e = true;
    var p = '';
    
    //basic data
    var vbd = validateBasicData();
    $(errorControl).className = 'red';
    $(errorControl).innerHTML = '';
    
    if(vbd != '') $(errorControl).innerHTML += vbd;
    else{
        //passwords
        var p = validatePasswords();
        
        if(p != ''){
            $(errorControl).innerHTML += p;
        }else{}
        
        //email
        e = validateEmail();
        //alert('e '+e);
        if(!e){//failure
            $(errorControl).innerHTML += '- Please add a valid email address<br />';
            $(start+'txt_Email').style.border = errorBorder;
        }else{//success
            $(start+'txt_Email').style.border = defaultStyle;
        }
        
    }
    
    if($(who).value.toLowerCase() == 'operator') { 
        var a = validateOperatorFields();
        var b = operatorSpecificValidation();
        if(a != '') $(errorControl).innerHTML += a;
        if(b != '') $(errorControl).innerHTML += b;
    }
    if($(who).value.toLowerCase() == 'buyer') validateBuyerFields();
    if($(who).value.toLowerCase() == 'jobseeker') validateJobSeekerFields();
    
    //alert('vbd '+vbd.length);
    //alert('p '+p.length);
    //alert('e1 '+e);
    //alert('a '+a.length);
    //alert('b '+b.length);
    
    if(vbd!='' || p!='' || !e || a!='' || b!=''){ isValid = false; /*alert('i\'m inside '+isValid);*/ }
    return isValid;
}

function validate(){
    var isValid = regValidate();
    return isValid;
}
/////////////////////////////////////////////////////////////////////////////

