var dataTransFlag = false;

function stateChange(formobject){
document.ContactForm.State.value = document.ContactForm.lclState.value;
}
function provinceChange(formobject){
document.ContactForm.State.value = document.ContactForm.lclProvince.value;
}


if(!ErrorColor)var ErrorColor="#45657F";
if(!OkColor)var OkColor="#FFFFFF";
if(!ErrorFontColor)var ErrorFontColor="#FFFFFF";
if(!OkFontColor)var OkFontColor="#606060";

function setCountryParams(formobject){ 
 
var selCountry = formobject.value;
 $("#stateLine1:visible").hide("fast");
 $("#stateLine2:visible").hide("fast");
 $("#provinceLine1:visible").hide("fast");
 $("#provinceLine2:visible").hide("fast");
 
 if(selCountry == "USA"){
  $("#stateLine1:hidden").fadeIn("fast");
  $("#stateLine2:hidden").fadeIn("fast");
  document.ContactForm.State.value = document.ContactForm.lclState.value;
 }
 
 if(selCountry == "Canada"){
  $("#provinceLine1:hidden").fadeIn("fast");
  $("#provinceLine2:hidden").fadeIn("fast");
  document.ContactForm.State.value = document.ContactForm.lclProvince.value;
 }
 
 if(selCountry != "Canada" ){
  document.ContactForm.lclProvince.value = "";
 }
 if(selCountry != "USA"){
  document.ContactForm.lclState.value = "";
 } 
}

function stateChange_cs(formobject){
document.CustServ.State_cs.value = document.CustServ.lclState_cs.value;
}

function provinceChange_cs(formobject){
document.CustServ.State_cs.value = document.CustServ.lclProvince_cs.value;
}

function setCountryParams_cs(formobject){ 
 
var selCountry = formobject.value;

 $("#stateLine1_cs:visible").hide("fast");
 $("#stateLine2_cs:visible").hide("fast");
 $("#provinceLine1_cs:visible").hide("fast");
 $("#provinceLine2_cs:visible").hide("fast");
 
 if(selCountry == "USA"){
  $("#stateLine1_cs:hidden").fadeIn("fast");
  $("#stateLine2_cs:hidden").fadeIn("fast");
  document.CustServ.State_cs.value = document.CustServ.lclState_cs.value;
 }
 
 if(selCountry == "Canada"){
  $("#provinceLine1_cs:hidden").fadeIn("fast");
  $("#provinceLine2_cs:hidden").fadeIn("fast");
  document.CustServ.State_cs.value = document.CustServ.lclProvince_cs.value;
 }
 
 if(selCountry != "Canada" &&  selCountry != "USA"){
  document.CustServ.State_cs.value = "";
 }
}


function validateRequiredfields(){
    
    var dog;
    var field;
    var outString = "";
    var myObject = document.getElementsByTagName("DIV")
    var spanObject 
    var i;
    var myLength;
    var spanLength; 
    var nodeLength;
    var i2;
    var i3;
    var inputValue;
    var retval;
    var fCnt;
var atName;
var atValue;

retval = true;
country = document.ContactForm.Country.value;
address = document.ContactForm.Address.value;
city = document.ContactForm.City.value;
serviceRequested = document.ContactForm.RequestedService.options[document.ContactForm.RequestedService.selectedIndex].value;

if(country == "USA" && (serviceRequested == "Demo Request" || serviceRequested == "Individual Offer")) {
	if(address == "") {
		error_address.style.display = "block";
		retval = false;
	}
	else {
		error_address.style.display = "none";
	}
	
	if(city == "") {
		error_city.style.display = "block";
		retval = false;
	}
	else {
		error_city.style.display = "none";
	}
}
else {
		error_address.style.display = "none";
		error_city.style.display = "none";	
}
	
if((document.ContactForm.Country.value == "USA" ) && (document.ContactForm.lclState.value == "")){
error_state.style.display = "block";
retval = false;
}else{
error_state.style.display = "none";
}

if((document.ContactForm.Country.value == "Canada") && (document.ContactForm.lclProvince.value == "")){
error_province.style.display = "block";
retval = false;
}else{
error_province.style.display = "none";
}

if (document.all.Phone.value=='') {
document.all.error_phone.style.display = "block";
retval = false;
}else{
document.all.error_phone.style.display = "none";
}

document.all.error_email.innerHTML = document.all.blankMessage.innerHTML;

if (document.all.Email.value=='') {
document.all.error_email.style.display = "block";
retval = false;
}else{
dog = document.all.Email.value;
dog = emailCheck(dog);
if(dog == false){
document.all.error_email.innerHTML = document.all.invalidMessage.innerHTML;
document.all.error_email.style.display = "block";
retval = false;
}else{
document.all.error_email.style.display = "none";
}
}
    myLength = myObject.length
    
    for(i=0;i<myLength;i++){
        spanObject = myObject.item(i).attributes;
        
        spanLength = spanObject.length;
        if(spanObject.length > 0){
            
            for(i2=0;i2<spanLength;i2++){
atName = spanObject.item(i2).name;
atValue = spanObject.item(i2).value;
atName = atName.toLowerCase();
atValue = atValue.toLowerCase();
                
                if(atName == "requiredbundle" && atValue == "true"){
fCnt = 0;
if(fCnt==0){
fCnt = myObject.item(i).getElementsByTagName("SELECT").length;
if(fCnt==1){
inputValue = myObject.item(i).getElementsByTagName("SELECT").item(0).value;
}
}
if(fCnt==0){
fCnt = myObject.item(i).getElementsByTagName("INPUT").length;
if(fCnt==1){
inputValue = myObject.item(i).getElementsByTagName("INPUT").item(0).value;
}
}
if(fCnt==0){
fCnt = myObject.item(i).getElementsByTagName("TEXTAREA").length;
if(fCnt==1){
inputValue = myObject.item(i).getElementsByTagName("TEXTAREA").item(0).value;
}
}
if(fCnt==1){
nodeLength = myObject.item(i).childNodes.length;
                    for(i3=0;i3<nodeLength;i3++){                   
                        if(myObject.item(i).childNodes.item(i3).tagName == "DIV"){
                            if(inputValue==""){
                                myObject.item(i).childNodes.item(i3).style.display = "block";
                                retval = false;
                                }else{
                                myObject.item(i).childNodes.item(i3).style.display = "none";
                                }
                            }
                        }
}
                    }
                }
            }
        }
    
    if(retval == false){
alert(errorMessage.innerHTML);
        }else{
        
        if(document.ContactForm["Country"] != undefined) var region = document.ContactForm["Region"].value = getRegion();
        
        document.ContactForm["Greeting"].value = document.ContactForm["Salutation"].value;

if(dataTransFlag==true){
retval = false;
}

dataTransFlag = true;
document.getElementById("formSubmitButton").value = "Processing Request...";
        
        
        }
    return retval;
    }


function validateRequiredfields_cs(){
    
    var dog;
    var field;
    var outString = "";
    var myObject = document.getElementsByTagName("DIV")
    var spanObject 
    var i;
    var myLength;
    var spanLength; 
    var nodeLength;
    var i2;
    var i3;
    var inputValue;
    var retval;
    var fCnt;
var atName;
var atValue;

    retval = true;



if((document.CustServ["00N70000002Lv0X"].value == "USA" ) && (document.CustServ["lclState"].value == "")){
error_state_cs.style.display = "block";
retval = false;
}else{
error_state_cs.style.display = "none";
}

if((document.CustServ["00N70000002Lv0X"].value == "Canada") && (document.CustServ["lclProvince"].value == "")){
error_province_cs.style.display = "block";
retval = false;
}else{
error_province_cs.style.display = "none";
}

if (document.CustServ["phone"].value=="") {
document.all.error_phone_cs.style.display = "block";
retval = false;
}else{
document.all.error_phone_cs.style.display = "none";
}

document.all.error_email.innerHTML = document.all.blankMessage.innerHTML;

if (document.CustServ["email"].value=="") {
document.all.error_email_cs.style.display = "block";
retval = false;
}else{
dog = document.CustServ["email"].value;
dog = emailCheck(dog);
if(dog == false){
document.all.error_email_cs.innerHTML = document.all.invalidMessage.innerHTML;
document.all.error_email_cs.style.display = "block";
retval = false;
}else{
document.all.error_email_cs.style.display = "none";
}
}
    myLength = myObject.length
    
    for(i=0;i<myLength;i++){
        spanObject = myObject.item(i).attributes;
        
        spanLength = spanObject.length;
        if(spanObject.length > 0){
            
            for(i2=0;i2<spanLength;i2++){
atName = spanObject.item(i2).name;
atValue = spanObject.item(i2).value;
atName = atName.toLowerCase();
atValue = atValue.toLowerCase();
                
                if(atName == "requiredbundle_cs" && atValue == "true"){
fCnt = 0;
if(fCnt==0){
fCnt = myObject.item(i).getElementsByTagName("SELECT").length;
if(fCnt==1){
inputValue = myObject.item(i).getElementsByTagName("SELECT").item(0).value;
}
}
if(fCnt==0){
fCnt = myObject.item(i).getElementsByTagName("INPUT").length;
if(fCnt==1){
inputValue = myObject.item(i).getElementsByTagName("INPUT").item(0).value;
}
}
if(fCnt==0){
fCnt = myObject.item(i).getElementsByTagName("TEXTAREA").length;
if(fCnt==1){
inputValue = myObject.item(i).getElementsByTagName("TEXTAREA").item(0).value;
}
}
if(fCnt==1){
nodeLength = myObject.item(i).childNodes.length;
                    for(i3=0;i3<nodeLength;i3++){                   
                        if(myObject.item(i).childNodes.item(i3).tagName == "DIV"){
                            if(inputValue==""){
                                myObject.item(i).childNodes.item(i3).style.display = "block";
                                retval = false;
                                }else{
                                myObject.item(i).childNodes.item(i3).style.display = "none";
                                }
                            }
                        }
}
                    }
                }
            }
        }
    
    if(retval == false){
alert(errorMessage.innerHTML);
        }else{

if(document.ContactForm["Country"] != undefined) var region = document.ContactForm["Region"].value = getRegion();

document.ContactForm["Greeting"].value = document.ContactForm["Salutation"].value;



 
}
    return retval;
    }

function emailCheck (emailStr) {
    
    var checkTLD=1;
    var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    
    /* The following string represents an atom (basically a series of non-special characters.) */
    
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    
    // The following pattern describes the structure of the user
    
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray=emailStr.match(emailPat);
    
    if (matchArray==null) {
        
        return false;
        }
    var user=matchArray[1];
    var domain=matchArray[2];
    
    // Start by checking that only basic ASCII characters are in the strings (0-127).
    
    for (i=0; i<user.length; i++) {
        if (user.charCodeAt(i)>127) {
            return false;
            }
        }
    for (i=0; i<domain.length; i++) {
        if (domain.charCodeAt(i)>127) {
            return false;
            }
        }
    
    // See if "user" is valid 
    
    if (user.match(userPat)==null) {
        
        // user is not valid
        return false;
        }
    
    
    var IPArray=domain.match(ipDomainPat);
    if (IPArray!=null) {
        
        // this is an IP address
        
        for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
                return false;
                }
            }
        return true;
        }
    
    var atomPat=new RegExp("^" + atom + "$");
    var domArr=domain.split(".");
    var len=domArr.length;
    for (i=0;i<len;i++) {
        if (domArr[i].search(atomPat)==-1) {
            return false;
            }
        }
    
    if (checkTLD && domArr[domArr.length-1].length!=2 && 
    domArr[domArr.length-1].search(knownDomsPat)==-1) {
        return false;
        }
    
    // Make sure there's a host name preceding the domain.
    
    if (len<2) {
        return false;
        }
    
    // If we've gotten this far, everything's valid!
    return true;
    }


function getRegion(){
 var country = document.ContactForm["Country"].value;
 var region = "FARO DISTRIBUTION";
 
 if(country == "Australia" || country == "Brunei" || country == "China" || country == "Hong Kong" || country == "India" || country == "Indonesia" || country == "Japan" || country == "Korea" || country == "Malaysia" || country == "Myanmar" || country == "New Zealand" || country == "Philippines" || country == "Singapore" || country == "South Korea" || country == "Sri Lanka" || country == "Taiwan" || country == "Thailand" || country == "Vietnam"){ 
  region = "ASIA";
 }
 if(country == "USA" || country == "United States" || country == "Canada" || country == "Mexico" || country == "Brazil" || country == "Costa Rica" || country == "Guatemala" || country == "Honduras" || country == "Puerto Rico" || country == "Chile" || country == "Argentina" || country == "Panama" || country == "Peru" || country == "Bolivia" || country == "Ecuador" || country == "Colombia" || country == "Venezuela"){ 
  region = "AMERICAS";
 }
 if(country == "UK" || country == "United Kingdom" || country == "Germany" || country == "Spain" || country == "Italy" || country == "France" || country == "Austria" || country == "Belgium" || country == "Netherlands" || country == "Luxembourg" || country == "Ireland" || country == "Switzerland" || country == "Poland" || country == "Portugal"){ 
  region = "EUROPE";
 }
 return region;
//switch (country){
//case "Australia": return "ASIA"; break;
//default : return "FARO DISTRIBUTION"
}  

function getRequestedService(){
 var RequestedService ="";
 if (document.ContactForm["Subject"])var SubjectObject = document.ContactForm["Subject"];
 if (document.ContactForm["RequestedService"])var SubjectObject = document.ContactForm["RequestedService"]; 
 if(SubjectObject){
 if (SubjectObject.type=="hidden") {
  RequestedService = SubjectObject.value;
 }else{  
  var anz2 = SubjectObject.length;
  for(var j=0;j<anz2;j++){
   var f2 = SubjectObject[j];
   if (f2.checked || f2.selected) RequestedService = SubjectObject[j].value;   
  }
 } 
 }
 return RequestedService;
}

function getMailHeader(){
 var RequestedService = getRequestedService();
 var defaultMailHeader = document.ContactForm["MailHeader"].value;
 var Header = defaultMailHeader;
 
 if (RequestedService=="Customer Service")Header = unescape(defaultMailHeader + "- Please forward to Customer Service");
 if (RequestedService=="Callback - Customer Service")Header = unescape(defaultMailHeader + "- Callback CS: Please forward to Customer Service");
 if (RequestedService=="Callback")Header = unescape(defaultMailHeader + "- Callback Request!");
 if (RequestedService=="Callback - Sales")Header = unescape(defaultMailHeader + "- Callback Request!");
 if (RequestedService=="Product Info")Header = unescape(defaultMailHeader + "- Requested Service: Product Info");
 if (RequestedService=="Demo Request")Header = unescape(defaultMailHeader + "- Demo Request!");
 if (RequestedService=="Quote Request")Header = unescape(defaultMailHeader + "- Quote Request!");
 return Header;
}


  
function isEmailAddr(str) 
{
 return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
}

