/*
Main JS file
Author: Weston Wilson
Copyright: Systemware, Inc. 2004-2005
*/

/*
Global variables
*/
var timeoutID = []; //tracks timeouts for functions

/*
object detection:
we'll generally just use DOMmode[0] to check
for getElementById()
*/
var DOMmode = new Array(3);
DOMmode[0] = false;
DOMmode[1] = false;
DOMmode[2] = false;

if (document.getElementById) {
	DOMmode[0] = true;
} else if (document.all) {
	DOMmode[1] = true;
} else if (document.layers) {
	DOMmode[2] = true;
}

function getObj( name ) {
  if (DOMmode[0]) {
  		this.obj = document.getElementById(name);
		this.style = document.getElementById(name).style;
  } else if (DOMmode[1]) {
		this.obj = document.all[name];
		this.style = document.all[name].style;
  } else if (DOMmode[2]) {
   		this.obj = document.layers[name];
   		this.style = document.layers[name];
  }
}

function retObj( name ) {
  if (DOMmode[0]) {
  		this.obj = document.getElementById(name);
  } else if (DOMmode[1]) {
		this.obj = document.all[name];
  } else if (DOMmode[2]) {
   		this.obj = document.layers[name];
  }
  return obj;
}

function showDiv( id ) {
	var obj = new getObj(id);
	if (obj.style.visibility != "visible") {
		obj.style.visibility = "visible";
	}
}

function hideDiv( id ) {
	var obj = new getObj(id);
	if (obj.style.visibility != "hidden") {
		obj.style.visibility = "hidden";
	}
}

function hideDivTimeout( id, time ) {
	var obj = new getObj(id);
	if (obj.style.visibility != "hidden") {
		timeoutID[id] = setTimeout('obj.style.visibility = "hidden"', time);
	}
}

function clrTimeout( id ) {
	if (timeoutID[id]) {
		clearTimeout(timeoutID[id]);
		timeoutID[id] = null;
	}
}

function showMenu( id ) {
	var obj = new getObj(id);
	obj.style.clip = 'rect(auto auto auto auto)';
}

function hideMenu( id, clipTo ) {
	var obj = new getObj(id);
	obj.style.clip = 'rect(auto auto ' + clipTo + ' auto)';
}

function hideMenuTimeout( id, clipTo, time ) {
	var obj = new getObj(id);
	var hideMenuFunction = new Function('hideMenu(\''+id+'\',\''+clipTo+'\')');
	timeoutID[id] = setTimeout(hideMenuFunction, time);
}

function showTableBody( id ) {
	var obj = retObj(id);
	if (DOMmode[0]) {
			obj.tBodies[0].style.display = "block";	
	} else {
			obj.tBodies[0].style.display = "table-row-group";
	}
}

function hideTableBody( id ) {
	var obj = retObj(id);
	if (document.compatMode == "CSS1Compat") {
		obj.tBodies[0].style.display = "none";
	}	
}
//for mouse cursor position
//document.onmousemove = function-to-position

/**
Cookies
**/
function GetCookie(sName){
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++){
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]){
      var sCrumb=unescape(aCrumb[1]);
      if (sCrumb=="undefined")
        sCrumb="";
      return(sCrumb);
    }
  }
  return("");
}

function SetCookie(name,value){
  document.cookie=name+"="+escape(value)+";path=/;expires=Thu, 1 Jan 2009 06:00:00 UTC;";
}

/***
Form Validation Functions
**/
function WithoutContent(ss) {
	if(ss.length > 0) {
		return false;
	}
	return true;
}

function WithContent(ss) {
	if(ss.length == 0) {
		return false;
	}
	return true;
}

function filterNonNumeric( field ) {
	var result = new String();
	var point=0;
	var numbers = "0123456789";
	var chars = field.value.split(""); // create array 
	
	for (i = 0; i < chars.length; i++) {
		if (numbers.indexOf(chars[i]) != -1) {
			if (chars[i]==".") {
				point=point+1;
			}
	
			if (point<=1 && numbers.indexOf(chars[i]) != -1) {
				result += chars[i];
			}
		}
	}
	if (field.value != result) 
		field.value = result;
}

// Email Validation. Written by PerlScriptsJavaScripts.com

function check_email(e) {
	ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";

	for(i=0; i < e.length ;i++){
		if(ok.indexOf(e.charAt(i))<0){ 
			return (false);
		}	
	} 

	if (document.images) {
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two)) {
			return (-1);		
		} 

	}

}

function loadTab( tabNum ) {
	var contentObj = retObj("prodTabsContent");
	var tab1 = retObj("tab1");
	var tab2 = retObj("tab2");
	var tab3 = retObj("tab3");
	var tabObj = retObj("tab"+tabNum+"Content");
	
	switch(tabNum) {
		case 1:
			tab1.className = "prodTabsTab1_active";
			tab2.className = "prodTabsTab2";
			tab3.className = "prodTabsTab3";
			break;
		case 2:
			tab1.className = "prodTabsTab1";
			tab2.className = "prodTabsTab2_active";
			tab3.className = "prodTabsTab3";
			break;
		case 3:
			tab1.className = "prodTabsTab1";
			tab2.className = "prodTabsTab2";
			tab3.className = "prodTabsTab3_active";
			break;
			
	}
	
	contentObj.innerHTML = tabObj.innerHTML;
	
}

function loadTab4( tabNum ) {
	var contentObj = retObj("prodTabsContent");
	var tab1 = retObj("tab1");
	var tab2 = retObj("tab2");
	var tab3 = retObj("tab3");
	var tab4 = retObj("tab4");
	var tabObj = retObj("tab"+tabNum+"Content");
	
	switch(tabNum) {
		case 1:
			tab1.className = "prodTabsTab1_active";
			tab2.className = "prodTabsTab2";
			tab3.className = "prodTabsTab3";
			tab4.className = "prodTabsTab4";
			break;
		case 2:
			tab1.className = "prodTabsTab1";
			tab2.className = "prodTabsTab2_active";
			tab3.className = "prodTabsTab3";
			tab4.className = "prodTabsTab4";
			break;
		case 3:
			tab1.className = "prodTabsTab1";
			tab2.className = "prodTabsTab2";
			tab3.className = "prodTabsTab3_active";
			tab4.className = "prodTabsTab4";
			break;
		case 4:
			tab1.className = "prodTabsTab1";
			tab2.className = "prodTabsTab2";
			tab3.className = "prodTabsTab3";
			tab4.className = "prodTabsTab4_active";
			break;
			
	}
	
	contentObj.innerHTML = tabObj.innerHTML;
	
}


function setClass( el, cn ) {
	el.className = cn;
}

function validateTrial( frm ) {

	var error_array = [];
	var error_count = 0;
	if(WithoutContent( frm.fname.value )) {
		setClass(frm.fname,'fielderror');
		error_array[error_count] = 'Please provide your first name.';
		error_count++;
	}
	if(WithoutContent( frm.lname.value )) {
		setClass(frm.lname,'fielderror');
		error_array[error_count] = 'Please provide your last name.';
		error_count++;
	}
	if(WithoutContent( frm.email1.value )) {
		setClass(frm.email1,'fielderror');
		error_array[error_count] = 'You must provide a valid email address.';
		error_count++;
	}
	if(!check_email( frm.email1.value )) {
		setClass(frm.email1,'fielderror');
		error_array[error_count] = 'The email address provided has an error, or is not in the form of email@address.com.';
		error_count++;
	}
	if(WithoutContent( frm.email2.value )) {
		setClass(frm.email2,'fielderror');
		error_array[error_count] = 'You must re-enter a valid email address.';
		error_count++;
	}
	if(!check_email( frm.email2.value )) {
		setClass(frm.email2,'fielderror');
		error_array[error_count] = 'The re-entered email address provided has an error, or is not in the form of email@address.com.';
		error_count++;
	}
	if(frm.email1.value != frm.email2.value) {
		setClass(frm.email1,'fielderror');
		setClass(frm.email2,'fielderror');
		error_array[error_count] = 'The email addresses provided do not match.';
		error_count++;
	}
	
	if(WithoutContent( frm.phone.value )) {
		setClass(frm.phone,'fielderror');
		error_array[error_count] = 'Please provide your phone number.';
		error_count++;
	}
	if(WithoutContent( frm.company.value )) {
		setClass(frm.company,'fielderror');
		error_array[error_count] = 'Please provide your company\'s name.';
		error_count++;
	}
	if(WithoutContent( frm.title.value )) {
		setClass(frm.title,'fielderror');
		error_array[error_count] = 'Please provide your job title.';
		error_count++;
	}
	if(WithoutContent( frm.numboxes.value )) {
		setClass(frm.numboxes,'fielderror');
		error_array[error_count] = 'Please provide the number of email accounts you\'ll be using with Email Discovery.';
		error_count++;
	}
	if(WithoutContent( frm.numservers.value )) {
		setClass(frm.numservers,'fielderror');
		error_array[error_count] = 'Please provide the number of email servers you\'ll be using with Email Discovery.';
		error_count++;
	}
	if(!frm.lic_agree.checked) {
		setClass(frm.lic_agree,'fielderror');
		error_array[error_count] = 'You must agree to our license and terms to download the Email Discovery Trial.';
		error_count++;
	}
	
	if(error_count < 1) {
		if(frm.imgver.value=="8R4P3") {
			return true;
		} else {
			alert("Please enter the text you see in the image verification image.");
			return false;
		}
	} else {
		var msg = "The following errors were found:\n------------------------------\n\n";
		for(i=0;i<error_count;i++) {
			msg += error_array[i] + "\n\n";
		}
		alert(msg);
		error_array = [];
		error_count = 0;
		return false;
	}
	
}
 
//Dreamweaver rollover js
//awful stuff *************************************************************************


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

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_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}