//--------- Google Analytics ------------//

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-24075566-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

//--------- Start - Key Press Events ------------//
function fnTrapNumericKeyPress(event, allowDecimal)
{
	if (fnIsInt(event, allowDecimal))
	{
		return true;
	}

	return false;
}

function fnTrapPhoneFaxKeyPress(event)
{
	if (fnIsInt(event, true) || fnIsPhoneFax(event) )
	{
		return true;
	}

	return false;
}

function fnTrapEnterKeyPress(btn, event)
{
    if (!event) {	event = window.event;	}
    var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    
    if ( Key==13 )
    {
		event.returnValue=false;
		event.cancel = true;
		btn.click();
	}	
}

function fnIsInt(event, allowDecimal)
{
	if (!event) {	event = window.event;	}
	var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

	//BKSPC, DEL, 0-9, DECIMAL
	if( Key==8 || Key==46 || (Key >= 48 && Key <=57) || (allowDecimal == true && Key==46) )
	{
		return true;
	} else {
		return false;
	}

	return false;
}

function fnIsPhoneFax(event)
{
	if (!event) {	event = window.event;	}
	var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

	//-, SPACE
	if( Key==45 || Key==32 )
	{
		return true;
	} else {
		return false;
	}


	return false;
}










//*************************************
//Cross-Browser Compatability Functions
//*************************************
function getElmById(aID)
{ 
	var element = null; 

	if (document.getElementById)
		element = document.getElementById(aID);
	else if (document.layers) 
		element = document.layers[aID];
	else if (document.all) 
		element = document.all[aID];

	return element;
}

function getDOMObject(aID) {
    if (document.getElementById)
        return document.getElementById(aID);
    else if (document.layers)
        return document.layers[aID];
    else if (document.all)
        return document.all[aID];
}



function handleEvent(aEvent) {
	// If aEvent is null, it is the Internet Explorer event model, so get window.event.
	return aEvent ? aEvent : window.event;
}


//BrowserDetect - found at http://www.quirksmode.org/js/detect.html
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();



//*************************************
//Image Functions
//*************************************
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_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];
    	}
    }
   }
}


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];
   	}
   }
}


//*************************************
//Other Functions
//*************************************
function MM_openBrWindow(theURL,winName,features) 
{ //v2.0
  window.open(theURL,winName,features);
}


function linkOver(id)
{
	id.className = "linkHover";
}

function linkOut(id)
{
	id.className = "link";
}

function hyperlink(){}




//*************************************
//Definition Functions
//*************************************

var locate = true;

function showDefinition(aEvent, definition, id)
{
	var defElement = getElmById('floatDef');

	if (locate)
	{
		locate = false;
		
		if (BrowserDetect.browser == "Explorer") 
		{
			defElement.style.left = handleEvent(aEvent).clientX  + 5 + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
			defElement.style.top = handleEvent(aEvent).clientY  + 5 + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
		}
		else
		{	
			defElement.style.left = (handleEvent(aEvent).pageX + 5) + "px";
			defElement.style.top = (handleEvent(aEvent).pageY + 5) + "px";
		}
		
		defElement.innerHTML = defTable(definition);		
	}
	
	id.className = "defHover"
	
	return;
}

function defTable(definition)
{
	var table;
	
	table = "<table class=defTable cellpadding=0 cellspacing=0>";
	
	//header
	table += "<tr>";
	table += "<td>";
	table += "<img src='/Marketing/images/defHeader.gif' border=0 />";
	table += "</td>";
	table += "</tr>";
	
	//definition
	table += "<tr>";
	table += "<td class=definition>";
	table += definition;
	table += "</td>";
	table += "</tr>";
	
	//footer
	table += "<tr>";
	table += "<td>";
	table += "<img src='/Marketing/images/defFooter.gif' border=0 />";
	table += "</td>";
	table += "</tr>";
	
	table += "</table>";
	
	return table;	
}


function defOut(id)
{
	var defElement = getElmById('floatDef');
	
	locate = true;
	
	defElement.innerHTML = "";
	defElement.style.left = "-100";
	defElement.style.top = "-100";
	
	id.className = "def"
}

//****************************
//Specific Definitions To Show
//****************************
function AMOver(aEvent, id, cOffsetX, cOffsetY)
{
	var definition;
	
	definition = "<b><u>Accountable Mail</u></b>";
	definition +="<br>";
	definition +="A mail piece that requires proof that it was mailed, and/or proof that it was delivered, ";
	definition +="and may require a recipient signature.  ";
	definition +="<br><br>";
	definition +="Traditional methods of Accountable Mail include Certified Mail<sup class='tm'>TM</sup>, ";
	definition +="UPS<sup class='tm'>TM</sup>, FedEx&reg;, and DHL<sup class='tm'>TM</sup>.";

	showDefinition(aEvent, definition, id, cOffsetX, cOffsetY);
}










