// JavaScript Document

// Hide all select boxes
function hideSelect() {
  if (document.all) {
    for (formIdx=0; formIdx<document.forms.length; formIdx++) {
      var theForm = document.forms[formIdx];
      for (elementIdx=0; elementIdx<theForm.elements.length; elementIdx++) {
        if(theForm[elementIdx].type == "select-one") {
          theForm[elementIdx].style.visibility = "hidden";
        }
      }
    }
  }
}

// Unhide all select boxes
function unhideSelect() {
  if (document.all) {
    for (formIdx=0; formIdx<document.forms.length; formIdx++) {
      var theForm = document.forms[formIdx];
        for(elementIdx=0; elementIdx<theForm.elements.length; elementIdx++) {
          if(theForm[elementIdx].type == "select-one") {
            theForm[elementIdx].style.visibility = "visible";
          }
         }
      }
  }
}


function trim(s) {
	while(s.length>0 && s.substring(s.length-1,s.length)==' ')
		s=s.substring(0, s.length-1);

	if(s.length==1 && s==' ')
		s='';

	return s;
}

function empty(s) {
	s=trim(s);
	return(s.length==0);
}

function errorFocus(s, focusField) {
			 
 if(!empty(s)) alert(s);
 focusField.focus();
 
 return false;
}

function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}


function validateRequest(){
	with(document.inforequest) {
		
		if(empty(firstname.value)) return errorFocus("Please enter a First Name.", firstname);
		if(empty(lastname.value)) return errorFocus("Please enter a Last Name.", lastname);
		if(empty(email.value)) return errorFocus("Please enter an Email Address.", email);
		if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email.value))
		{
			alert("Please enter a valid email address.");  
			email.focus();			
			return false;
		}	

		if(empty(phone.value)) return errorFocus("Please enter a Phone Number.", phone);

	
	}	
}

function validateEmailProfile(){
	with(document.emailprofile) {
		
		if(empty(txtToEmail.value)) return errorFocus("Please enter an Email Address.", txtToEmail);
		if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(txtToEmail.value))
		{
			alert("Please enter a valid email address.");  
			txtToEmail.focus();			
			return false;
		}	
		
		if(empty(txtFromEmail.value)) return errorFocus("Please enter an Email Address.", txtFromEmail);
		if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(txtFromEmail.value))
		{
			alert("Please enter a valid email address.");  
			txtFromEmail.focus();			
			return false;
		}

	
	}	
}

function validateBlog(){
	with(document.emailblog) {
		
		if(empty(txtToEmail.value)) return errorFocus("Please enter an Email Address.", txtToEmail);
		if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(txtToEmail.value))
		{
			alert("Please enter a valid email address.");  
			txtToEmail.focus();			
			return false;
		}	
		
		if(empty(txtFromEmail.value)) return errorFocus("Please enter an Email Address.", txtFromEmail);
		if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(txtFromEmail.value))
		{
			alert("Please enter a valid email address.");  
			txtFromEmail.focus();			
			return false;
		}

	
	}	
}


function checkRadio (frmName, rbGroupName) {
 var radios = document[frmName].elements[rbGroupName];
 for (var i=0; i <radios.length; i++) {
  if (radios[i].checked) {
   return true;
  }
 }
 return false;
}

function validateRegistration() {
	
	with(document.frmReg) {
		
		if(empty(Name.value)) return errorFocus("Please enter a Name.", Name);
		if(empty(Company.value)) return errorFocus("Please enter a Company Name.", Company);
		if(empty(DaytimePhone.value)) return errorFocus("Please enter a Phone Number.", DaytimePhone);

		
		if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(EmailAddress.value))
		{
			alert("Please enter a valid email address.");  
			EmailAddress.focus();			
			return false;
		}	
		
		if (Location.length > 0) {
		
			myOption = -1;
			for (i=Location.length-1; i > -1; i--) {
			if (Location[i].checked) {
			myOption = i;
			}
			}
			if (myOption == -1) {
			alert("You must select a Location");
			return false;
			} 
		
		}

	}
}

function submitsearch()
{
	document.getElementById("search-form").submit();
}

function mailDisclaimer(email, root)
{
     var url = root + '/email-disclaimer.cfm?email=' + email
     var windowOptions = 'width=600,height=500,scrollbars=yes,resizable=no,toolbar=no,menubar=no,location=no,left=150,top=200';
     var win = window.open(url,'_new', windowOptions);
}


//begin functions to hide and display information
function iif(condition, string1, string2) {
	
	if(condition) return string1;
	return string2;
}

function displayHide(fieldName) {
	
		if(document.getElementById) {
			var d=document.getElementsByTagName('div');
			for(var i=0;i<d.length;i++)
				if(d[i].id==fieldName) {
					d[i].style.display=iif(d[i].style.display=='', 'none', '');
				}
		} else
			alert('Unable to hide!');
}
//end functions to hide and display information

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
