﻿// JScript File
function validEmail(str)
{
    var pattern = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/i;
    return(pattern.exec(str));
}
        
function SetColor(ctrl, color)
{
    var c = this.document.getElementById(ctrl);
    if(c) c.style.color = color;
}

function ResetColor(ctrl)
{
    SetColor(ctrl, 'black');
} 
       
function SetError(ctrl)
{
    SetColor(ctrl, 'red');
}
        
function CheckValue(value1, value2)
{
    var name = this.document.getElementById(value1);
    var val = trimAll(name.value);
    
    if(val == '')
    {
        SetError(value2);
        return false;
    }
    else
    {
        ResetColor(value2);
        return true;
    }
}

function CheckEmail(value1, value2)
{
    var email = this.document.getElementById(value1);
    
    var val = email.value;
    
    if(val == '')
    {
        SetError(value2);
        return false;
    }
    else
    {
        if(!validEmail(val))
        {
            return false;
        }
        else
        {
            ResetColor(value2);
            return true;
        }
    }
}


function ValidateCheckbox(checkoxFld)
{   
    if (this.document.getElementById(checkoxFld).checked ) {
        return true;
    }
    else {
        return false;
    }    
}
    
function ValidateForm(modeId)
{
    
    var result = true;
    var resultEmail = true;
    var resultFoi = false ;
    //Check input fields
if (modeId != 'D' )    
{
  //  alert("live");
    result = CheckValue('page__contentRegion1_ctl00_txtCompanyName','lblCompanyName') && result;
    result = CheckValue('page__contentRegion1_ctl00_txtName','lblName') && result;
    result = CheckValue('page__contentRegion1_ctl00_txtFirstname','lblFirstname') && result;
    result = CheckValue('page__contentRegion1_ctl00_txtFunction','lblFunction') && result;
    result = CheckValue('page__contentRegion1_ctl00_txtAddress1','lblAddress1') && result;
    result = CheckValue('page__contentRegion1_ctl00_txtZip','lblZip') && result;
    result = CheckValue('page__contentRegion1_ctl00_txtCity','lblCity') && result;        
    result = CheckValue('page__contentRegion1_ctl00_txtCountry','lblCountry') && result;
    result = CheckValue('page__contentRegion1_ctl00_txtPhone','lblPhone') && result;
    
    //Check email field
    resultEmail = CheckEmail('page__contentRegion1_ctl00_txtEmail','lblEmail') && resultEmail;    
        
    resultFoi =  ValidateCheckbox('page__contentRegion1_ctl00_cbxSemi') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl00_cbxWireless') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl00_cbxTFT') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl00_cbxDisplay') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl00_cbxPowerled') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl00_cbxPassive') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl00_cbxEnclosures') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl00_cbxPower') || resultFoi;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl00_cbxIndustrialAutomation') || resultFoi;    

 }
 else {
  //  alert("design");
    result = CheckValue('page__contentRegion1_ctl01_txtCompanyName','lblCompanyName') && result;
    result = CheckValue('page__contentRegion1_ctl01_txtName','lblName') && result;
    result = CheckValue('page__contentRegion1_ctl01_txtFirstname','lblFirstname') && result;
    result = CheckValue('page__contentRegion1_ctl01_txtFunction','lblFunction') && result;
    result = CheckValue('page__contentRegion1_ctl01_txtAddress1','lblAddress1') && result;
    result = CheckValue('page__contentRegion1_ctl00_txtZip','lblZip') && result;
    result = CheckValue('page__contentRegion1_ctl00_txtCity','lblCity') && result;        
    result = CheckValue('page__contentRegion1_ctl01_txtCountry','lblCountry') && result;
    result = CheckValue('page__contentRegion1_ctl01_txtPhone','lblPhone') && result;
    
    //Check email field
    resultEmail = CheckEmail('page__contentRegion1_ctl01_txtEmail','lblEmail') && resultEmail;    
        
    resultFoi =  ValidateCheckbox('page__contentRegion1_ctl01_cbxSemi') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl01_cbxWireless') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl01_cbxTFT') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl01_cbxDisplay') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl01_cbxPowerled') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl01_cbxPassive') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl01_cbxEnclosures') || resultFoi ;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl01_cbxPower') || resultFoi;
    resultFoi = ValidateCheckbox('page__contentRegion1_ctl01_cbxIndustrialAutomation') || resultFoi;    

 }  
    if(!result)
    {
        alert("Please fill the required fields correctly.");        
    }
    else if (!resultEmail) 
    {
         alert("Please fill a valid email address.");     
    }
    
    if (! resultFoi) {
        alert("Please specify fields of interest.");
    }
               
    if (!result  || !resultEmail || ! resultFoi) 
    {
            return false;
    }
    else
    {
            return true;
    }
}



function trimAll( strValue ) {
/************************************************
DESCRIPTION: Removes leading and trailing spaces.

PARAMETERS: Source string from which spaces will
  be removed;

RETURNS: Source string with whitespaces removed.
*************************************************/
 var objRegExp = /^(\s*)$/;

    //check for all spaces
    if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
    }

   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
  return strValue;
}
