// JavaScript Document

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function switchShowHideText(oContentDiv, oLabelDiv) {
	var obj, objLabel;
	obj = MM_findObj(oContentDiv);
	objLabel = MM_findObj(oLabelDiv);
	obj.style.display = (obj.style.display=='')?'none':'';
	objLabel.innerHTML = (obj.style.display=='none')?'More [+]':'Less [&minus;]';
}

 
function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function validateRequiredForCompact(fld, txtlabel) {
	var error ="";

	if (fld.value == txtlabel ) {
		fld.style.background = 'Yellow';
		error = txtlabel + " is required.\n";
	} else {
		fld.style.background = 'White';		
	}

	return error;
}


function validateRequired(fld, txtlabel) {
	var error ="";
	
	if (fld.value.length == 0) {
		fld.style.background = 'Yellow';
			error = document.getElementById(txtlabel).innerHTML + " is required.\n"
	} else {
		fld.style.background = 'White';
	}

	return error;
}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "Please enter an E-mail Address.\n";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = 'Yellow';
        error = "Please enter a valid E-mail Address.\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Yellow';
        error = "The E-mail Address contains illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}
 
function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\+\ ]/g, '');    
 
   if (fld.value == "") {
        error = "Please enter a Phone Number.\n";
        fld.style.background = 'Yellow';
    } else if (isNaN(parseInt(stripped))) {
        error = "The Phone Number contains illegal characters.\n";
        fld.style.background = 'Yellow';
 	} else if (isInteger(stripped)==false) {
        error = "The Phone Number contains illegal characters.\n";
        fld.style.background = 'Yellow';		
    } else {
        fld.style.background = 'White';
    }	
    return error;
}

function validateCompany(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
	var blockedCompanies= /SEO/gi ; 
   
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "Please enter an organization name.\n";
    } else if (fld.value.match(blockedCompanies)) {
        fld.style.background = 'Yellow';
        error = "Please enter a valid organizaiton name. \n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function clearField(fld) {
     if (fld.value == fld.defaultValue) {
         fld.value = ""
     }
}

function restoreField(fld) {
     if (fld.value == "") {
         fld.value = fld.defaultValue
     }
}

function validateFormOnSubmit(theForm) {
var reason = "";
 
  reason += validateRequired(theForm.first_name, "label_first_name");
  reason += validateRequired(theForm.last_name, "label_last_name");
  reason += validateRequired(theForm.title, "label_title"); 
  reason += validateCompany(theForm.company);  
  reason += validateEmail(theForm.email);
  reason += validatePhone(theForm.phone);
  reason += validateRequired(theForm.state, "label_state");
  reason += validateRequired(theForm.country, "label_country"); 
  reason += validateRequired(theForm.description, "label_yourInquiry");  

 
      
  if (reason != "") {
    alert("Some fields need your attention:\n\n" + reason);
    return false;
  } else {
  	return true;
  }
  
}

function validateDownloadOnSubmit(theForm) {
var reason = "";
 
  reason += validateRequired(theForm.first_name, "label_first_name");
  reason += validateRequired(theForm.last_name, "label_last_name");
  reason += validateRequired(theForm.title, "label_title");
  reason += validateRequired(theForm.company, "label_company"); 
  reason += validateRequired(theForm.userid, "label_userid");
  reason += validateRequired(theForm.pswd, "label_pswd");   
  reason += validateEmail(theForm.email);
  
 
      
  if (reason != "") {
    alert("Some fields need your attention:\n\n" + reason);
    return false;
  } else {
  	return true;
  }
  
}

function validateFormQuickSignUp(theForm) {
var reason = "";
 
  reason += validateRequiredForCompact(theForm.first_name, "First Name");
  reason += validateRequiredForCompact(theForm.last_name, "Last Name");
  reason += validateRequiredForCompact(theForm.company, "Company");
  reason += validateEmail(theForm.email);
  reason += validateRequiredForCompact(theForm.state, "Select State");
  reason += validateRequiredForCompact(theForm.country, "Select Country");
  if (reason != "") {
    alert(reason);
    return false;
  } else {
  	return true;
  }
   
}





function validateRegistration(theForm) {
var reason = "";
var reason2 = "";

  reason += validateRequired(theForm.org_name, "label_org_name");
  reason += validateRequired(theForm.address1, "label_address1");
  reason += validateRequired(theForm.city, "label_city");
  reason += validateRequired(theForm.state, "label_state");  
  reason += validateRequired(theForm.zip, "label_zip");  
  reason += validateRequired(theForm.country, "label_country"); 
  reason += validatePhone(theForm.phone);


  reason2 += validateRequired(theForm.OrgType, "label_OrgType"); 
  reason2 += validateRequired(theForm.am_name, "label_am_name");  
  reason2 += validateRequired(theForm.am_address1, "label_am_address1");
  reason2 += validateRequired(theForm.am_city, "label_am_city");
  reason2 += validateRequired(theForm.am_state, "label_am_state");  
  reason2 += validateRequired(theForm.am_zip, "label_am_zip");  
  reason2 += validateRequired(theForm.am_country, "label_am_country");   
  reason2 += validateEmail(theForm.am_email);
  reason2 += validatePhone(theForm.am_phone);
  
  if ((reason != "") || (reason2 != "")) {
    alert("Some fields need your attention:\n\n" + "Organization Related:\n" + reason + "\nAccount Management Related:\n" + reason2);
    return false;
  } else {
  	return true;
  }
  
}

function validateFormQuickSignUp(theForm) {
var reason = "";
 
  reason += validateRequiredForCompact(theForm.first_name, "First Name");
  reason += validateRequiredForCompact(theForm.last_name, "Last Name");
  reason += validateRequiredForCompact(theForm.company, "Company");
  reason += validateEmail(theForm.email);
  reason += validateRequiredForCompact(theForm.state, "Select State");
  reason += validateRequiredForCompact(theForm.country, "Select Country");
  if (reason != "") {
    alert(reason);
    return false;
  } else {
  	return true;
  }
   
}