/* AFG Javascript */

/* Email signup show/hide */

function showEmail()
{
if (document.getElementById("email-box").style.display == 'none')
{
document.getElementById("email-box").style.display = 'block'
return
}
}

function closeEmail()
{
if (document.getElementById("email-box").style.display == 'block')
{
document.getElementById("email-box").style.display = 'none'
return
}
}





/*--email validation--*/
//  TrimAll.cfm - Trim leading and trailing blanks from an input field

   function TrimAll(obj) {

      var startpos = 0, endpos = obj.value.length - 1;

      if (endpos == -1) { //  null string
        return;
      }

      while (startpos <= obj.value.length && obj.value.substring(startpos, startpos + 1) == " ") {
 	      startpos++; // find start position of string 
      }

      while (endpos >= 0 && obj.value.substring(endpos, endpos + 1) == " ") {
	      endpos--; // find end position of string 
      }

      if (startpos > endpos) { //- trim the object 
         obj.value = "";
      } else {
         obj.value = obj.value.substring(startpos, endpos + 1);
      }
   }

//   BadText.js - Check for the presence of any illegal character

   function BadText(obj, objname) {
      TrimAll(obj);
      c = '|';
      if (obj.value.indexOf(c) != -1) {
         alert("'" + objname + "' contains an illegal '" + c + "' character");
         return true;
      }
      return false;
   }

 //  IsAbsent.js - check for the presence of any character besides a blank

   function IsAbsent(obj, objname) {
      var retval = true;
      for (var i = 0; i < obj.value.length; i++) {
         if (obj.value.substring(i, i + 1) != " ") {
            retval = false;
            break;
         }
      }
      if (retval && (objname != "")) {
         alert("'" + objname + "' may not be left empty");
      }
      return retval;
   }
   
//  BadEmail.js - Check for illegally formatted email address

   function BadEmail(obj, objname)
   {
     TrimAll(obj);
     x=obj;
     L =x.value.length;
 	 if (x.value.charAt(L-1)=="."){alert("'" + objname + "' may not have a period as it last character");x.focus();return true}
	 At=x.value.indexOf("@");
	 if (At==-1){alert("'" + objname + "' is missing an @ sign");x.focus();return true}
	 if (At==0){alert("'" + objname + "' may not have @-sign as first character");x.focus();return true}
	 if (At==(L-1)){alert("'" + objname + "' may not have @-sign as last character");x.focus();return true}
	 A=x.value.indexOf("@",At+1);	 
	 if (A !=-1){alert("'" + objname + "' may not have more than one @-sign");x.focus();return true}
	 P =x.value.indexOf(".");
	 if (P==-1){alert("'" + objname + "' must have at least one period");x.focus();return true}
	 if (P==0){alert("'" + objname + "' may not have period as first character");x.focus();return true}
	 P =x.value.indexOf(".",At+1);
 	 if (P==-1){alert("'" + objname + "' must have at least one period after @-sign");x.focus();return true}
	 if (At+1==P){alert("'" + objname + "' must have characters between @sign and period");x.focus();return true}
	 y=x.value.substring(L-3,L); // last three characters
	 z=x.value.substring(L-2,L); // last two characters
	 z=z.toLowerCase();
	 if (y.charAt(0)=="." && z=="us") {y=x.value.substring(L-6,L-3)}
 	 if (y.charAt(0)!=".")
	     {
    	 y=y.toLowerCase();
	     // if (y!="com" && y!="edu" && y!="net" && y!="org" && y!="gov" && y!="mil" && y!="int"){alert("'" + objname + "' must be .com, .edu, .net, .org, .gov, .mil, or .int ");x.focus();return true};
		 }
	// if (P==(L-3)){alert("'" + objname + "' may not have only one period and end in just two letters");x.focus();return true}
	 if (x.value.indexOf(",")!=-1){alert("'" + objname + "' may not contain a comma");x.focus();return true}
	 if (x.value.indexOf(" ")!=-1){alert("'" + objname + "' may not contain a space");x.focus();return true}
	 if (x.value.indexOf("*")!=-1){alert("'" + objname + "' may not contain a asterisk");x.focus();return true}
	 if (x.value.indexOf(")")!=-1){alert("'" + objname + "' may not contain a close parenthesis");x.focus();return true}
	 if (x.value.indexOf("(")!=-1){alert("'" + objname + "' may not contain a open parenthesis");x.focus();return true}
	 if (x.value.indexOf(">")!=-1){alert("'" + objname + "' may not contain a greater than sign");x.focus();return true}
	 if (x.value.indexOf("<")!=-1){alert("'" + objname + "' may not contain a less than sign");x.focus();return true}
	 if (x.value.indexOf(":")!=-1){alert("'" + objname + "' may not contain a colon");x.focus();return true}
	 if (x.value.indexOf(";")!=-1){alert("'" + objname + "' may not contain a semi-colon");x.focus();return true}
	 if (x.value.indexOf('"')!=-1){alert("'" + objname + "' may not contain a quotation mark");x.focus();return true}
	 return false;
	}

function validateNewsletterSignup(aForm) {
	// email address must exist and be valid syntatically
	if (BadText(aForm.ea,"Your E-mail Address")) { aForm.ea.focus();return false;}
	if (IsAbsent(aForm.ea,"Your E-mail Address")) { aForm.ea.focus();return false;}
	if (BadEmail(aForm.ea,"Your E-mail Address"))  { aForm.ea.focus();return false;}
	closeEmail();
}








/************************************************************************************************************
Ajax dynamic list
Copyright (C) September 2005  DTHMLGoodies.com, Alf Magne Kalleland

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
written by Alf Magne Kalleland.

Alf Magne Kalleland, 2006
Owner of DHTMLgoodies.com
	
************************************************************************************************************/	
function showToolTip(e,text){
	if(document.all)e = event;
	
	var obj = document.getElementById('bubble_tooltip');
	var obj2 = document.getElementById('bubble_tooltip_content');
	obj2.innerHTML = text;
	obj.style.display = 'block';
	var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
	if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0; 
	var leftPos = e.clientX - 100;
	if(leftPos<0)leftPos = 0;
	obj.style.left = leftPos + 'px';
	obj.style.top = e.clientY - obj.offsetHeight -1 + st + 'px';
}	

function hideToolTip()
{
	document.getElementById('bubble_tooltip').style.display = 'none';
	
}



/*********************************  check for cookies *******************/

/*
Script Name: Javascript Cookie Script
Author: Public Domain, with some modifications
Script Source URI: http://techpatterns.com/downloads/javascript_cookies.php
Version 1.1.1
Last Update: 4 October 2007

Changes:
1.1.1 fixes a problem with Get_Cookie that did not correctly handle case
where cookie is initialized but it has no "=" and thus no value, the 
Get_Cookie function generates a NULL exception. This was pointed out by olivier, thanks

1.1.0 fixes a problem with Get_Cookie that did not correctly handle
cases where multiple cookies might test as the same, like: site1, site

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
*/

// this fixes an issue with the old method, ambiguous values 
// with this test document.cookie.indexOf( name + "=" );

// To use, simple do: Get_Cookie('cookie_name'); 
// replace cookie_name with the real cookie name, '' are required
function Get_Cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		
		
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found ) 
	{
		return null;
	}
}

/*
only the first 2 parameters are required, the cookie name, the cookie
value. Cookie time is in milliseconds, so the below expires will make the 
number you pass in the Set_Cookie function call the number of days the cookie
lasts, if you want it to be hours or minutes, just get rid of 24 and 60.

Generally you don't need to worry about domain, path or secure for most applications
so unless you need that, leave those parameters blank in the function call.
*/
function Set_Cookie( name, value, expires, path, domain, secure ) {
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
	// if the expires variable is set, make the correct expires time, the
	// current script below will set it for x number of days, to make it
	// for hours, delete * 24, for minutes, delete * 60 * 24
	if ( expires )
	{
		expires = expires * 1000 * 60 * 60 * 24;
	}
	//alert( 'today ' + today.toGMTString() );// this is for testing purpose only
	var expires_date = new Date( today.getTime() + (expires) );
	//alert('expires ' + expires_date.toGMTString());// this is for testing purposes only

	document.cookie = name + "=" +escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + //expires.toGMTString()
		( ( path ) ? ";path=" + path : "" ) + 
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
}

// this deletes the cookie when called
function Delete_Cookie( name, path, domain ) {
	if ( Get_Cookie( name ) ) document.cookie = name + "=" +
			( ( path ) ? ";path=" + path : "") +
			( ( domain ) ? ";domain=" + domain : "" ) +
			";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}