var rootDirectory = "http://www.gen-probe.com";
defaultStatus = "";

/* ******** Constants *********************************** */
PINT_Global = new Object();
PINT_Global.HTML = new Object();
PINT_Global.HTML.anchors = document.getElementsByTagName('a');
PINT_Global.HTML.label = document.getElementsByTagName('label');
PINT_Global.Status = new Object();
PINT_Global.Status.windowStatus = "";

function PINT_GetRootDirectory(){if(typeof(rootDirectory)=='undefined')return"";else return rootDirectory}function PINT_getElementsByClass(name){var all=document.all?document.all:document.getElementsByTagName('*');var elements=new Array();for(var e=0;e<all.length;e++){if((name!='')&&(all[e].className.indexOf(name)>=0))elements[elements.length]=all[e]}return elements}
function PINT_RolloverSubPageImgInit(rolloverId,windowStatus){PINT_RORolloverInit(rolloverId+"img",windowStatus,(PINT_IsDefaultFile()&&PINT_GetCurrentDirectory()==rolloverId?false:true),rolloverId+"img",PINT_GetRootDirectory()+"/images/SNR_"+rolloverId+".gif",true);}function PINT_RolloverImgInit(rolloverId,windowStatus){PINT_RORolloverInit(rolloverId+"img",windowStatus,(PINT_IsDefaultFile()&&PINT_GetCurrentDirectory()==rolloverId?false:true),rolloverId+"img",PINT_GetRootDirectory()+"/images/HNR_"+rolloverId+".gif",true);}function PINT_RORolloverInit(){if(!(PINT_ROcapableFlag))return false;if(!(document.images))return PINT_ROcapableFlag=false;if(PINT_RORolloverInit.arguments.length<1)return true;if(PINT_RORolloverInit.arguments.length<6||(PINT_RORolloverInit.arguments.length%3)!=0)return false;if(document.getElementById){var setTrigger=typeof(PINT_RORolloverInit.arguments[2])!='undefined'?PINT_RORolloverInit.arguments[2]:true;var trigger=document.getElementById(PINT_RORolloverInit.arguments[0]);if(setTrigger&&trigger){if(!(PINT_ROtriggers[trigger.id]))PINT_ROtriggers[trigger.id]=new Array();var targetIndex,targetImageIndex,revertIndex,target,revert;for(targetIndex=3;targetIndex<PINT_RORolloverInit.arguments.length;targetIndex+=3){targetImageIndex=targetIndex+1;revertIndex=targetIndex+2;target=document.getElementById(PINT_RORolloverInit.arguments[targetIndex]);targetrollover=PINT_RORolloverInit.arguments[targetImageIndex];revert=PINT_RORolloverInit.arguments[revertIndex];if(!(target))return false;if(!(target.src))return false;if(revert)PINT_ROtargets[target.id]=target.src;PINT_ROtargetRollovers[targetrollover]=new Image();PINT_ROtargetRollovers[targetrollover].src=targetrollover;PINT_ROtriggers[trigger.id][target.id]=PINT_ROtargetRollovers[targetrollover];}if(typeof(PINT_RORolloverInit.arguments[1])!='undefined')PINT_ROtriggers[trigger.id]["window.status"]=PINT_RORolloverInit.arguments[1];trigger.onmouseover=PINT_OnMouseOverHandler;trigger.onmouseout=PINT_OnMouseOutHandler}}return true}function PINT_RORollover(e){if(!PINT_ROcapableFlag)return false;var eventsource=PINT_GetEventSource(e);if(!eventsource)return(PINT_ROcapableFlag=false);PINT_RORolloverById(eventsource.id);return true}function PINT_RORollout(e){if(!PINT_ROcapableFlag)return false;var eventsource=PINT_GetEventSource(e);if(!eventsource)return(PINT_ROcapableFlag=false);PINT_RORolloutById(eventsource.id);return true}function PINT_RORolloverById(elementId){if(!PINT_ROcapableFlag)return false;if(eval('typeof(PINT_ROtriggers[elementId])')!='undefined'){for(target in PINT_ROtriggers[elementId]){if(typeof(document[target])=='object')document[target].src=PINT_ROtriggers[elementId][target].src;if(target=="window.status")windowStatus=PINT_ROtriggers[elementId][target]}}return true}function PINT_RORolloutById(elementId){if(!PINT_ROcapableFlag)return false;if(eval('typeof(PINT_ROtriggers[elementId])')!='undefined'){for(target in PINT_ROtriggers[elementId]){if(typeof(document[target])=='object'&&eval('typeof(PINT_ROtargets[target])')!='undefined')document[target].src=PINT_ROtargets[target]}}return true}PINT_MenuCapableFlag=true;PINT_MenuTriggers=new Array();PINT_MenuTargets=new Array();PINT_MenuTargetMenus=new Array();if((typeof PINT_MenuTriggers)!='object')PINT_MenuCapableFlag=false;function PINT_MenuInit(){if(!(PINT_MenuCapableFlag))return false;if(PINT_MenuInit.arguments.length<1)return true;if((PINT_MenuInit.arguments.length%2)!=1)return false;if(document.getElementById){var trigger=document.getElementById(PINT_MenuInit.arguments[0]);if(trigger){if(!(PINT_MenuTriggers[trigger.id]))PINT_MenuTriggers[trigger.id]=new Array();var target,targetMenu;target=document.getElementById(PINT_MenuInit.arguments[1]);targetMenu=PINT_MenuInit.arguments[2];PINT_MenuTriggers[trigger.id]=targetMenu;trigger.onmouseover=PINT_OnMouseOverHandler;trigger.onmouseout=PINT_OnMouseOutHandler}}return true}function PINT_MenuPopUp(e){if(!PINT_MenuCapableFlag)return false;var eventsource=PINT_GetEventSource(e);if(!eventsource)return(PINT_MenuCapableFlag=false);HM_f_PopUp(PINT_MenuTriggers[eventsource.id],e);return true}function PINT_MenuPopDown(e){if(!PINT_MenuCapableFlag)return false;var eventsource=PINT_GetEventSource(e);if(!eventsource)return(PINT_MenuCapableFlag=false);HM_f_PopDown(PINT_MenuTriggers[eventsource.id]);return true}
function PINT_GetEventSource(e)
{
return ( 
(e && e.target) || 
(window && window.event && window.event.srcElement)
);	
}
function PINT_GetElementById(idname)
{
var handle;

if (document.getElementById) {
handle = document.getElementById(idname);
if (handle) return handle;
}

if (document.getElementByName) {
handle = document.getElementByName(idname)[0];
if (handle) return handle;
}

handle = document[idname];
if (handle) return handle;

if (document.all) {
handle = document.all[idname];
if (handle) return handle;
}

if (document.anchors) {
handle = document.anchors[idname];
if (handle) return handle;
}

if (document.links) {
handle = document.links[idname];
if (handle) return handle;
}

if (document.images) {
handle = document.images[idname];
if (handle) return handle;
}

if (document.embeds) {
handle = document.embeds[idname];
if (handle) return handle;
}

return handle;
}
function PINT_GetIdByElement(element)
{
if (!(element)) return undefined;
if (element.id) return element.id;
if (element.name) return element.name;
return undefined;
}
function PINT_ChangePageTitle( pageTitle )
{
if(document.title.readOnly == true) document.title = pageTitle;
} 	
function PINT_GetCurrentFileName()
{
var URL = unescape( window.location.pathname );
var start = URL.lastIndexOf( "/" ) + 1;
var end = ( URL.indexOf( "?" ) > 0 ) ? URL.indexOf( "?" ) : URL.length;
return( URL.substring( start, end ) );
}	
function PINT_GetCurrentFilePath()
{
var URL = unescape( window.location.pathname );
var start = URL.lastIndexOf( "/" );
return( URL.substring( 0, start ) );
}
function PINT_GetCurrentDirectory()
{
var filePath = PINT_GetCurrentFilePath();
var directories = filePath.split("/");
return directories.length && directories[ directories.length-1 ] != "" ? directories[ directories.length-1 ] : "";
}
function PINT_IsRootDirectory( directory )
{
return directory == rootDirectory ? true : false;
}
function PINT_FirstFocus()	
{
var elementref;
var i=0;
if (!(elementref = PINT_FirstFocus.arguments[0]))
{
if (!(document.forms[0])) return false;
while ((elementref = document.forms[0].elements[i++]) && (elementref.type == 'hidden')) {};
}
if (!(elementref)) return false;
elementref.focus();
return true;
}


function PINT_SubmitFormHandler(e)
	{
	e = (e) ? e : ((window.event) ? window.event : "")
	if (e)
		{
		var eventsource = PINT_GetEventSource(e);
		if (eventsource)
			{
			return check_form(eventsource);
			}
		}		
	}



function PINT_SubmitForm()
	{
	if (PINT_SubmitForm.arguments.length != 1) return false;
	
	if ( document.getElementById )
		{
		var elementIndex, trigger, elementLength;
		trigger = document.getElementById( PINT_SubmitForm.arguments[0] );
		if (trigger)
			{
			trigger.onsubmit = PINT_SubmitFormHandler;
			}
		}
	}


	//==================== USER SHOULD NOT MODIFY BEYOND THIS POINT ====================//

// Initializing global variables
var Names = new Array();
var CheckFor = new Array();
var Errors = new Array();
var ExtraInfo = new Array();
var error_message = "";
var firstfield = "";	

/* -----------------------------------------------------------------------------------
Function: 		set_variables
Description:	Set variables to Names, CheckFor and Errors array
----------------------------------------------------------------------------------- */
function set_variables(name, check_for, message, extra_info)
{
	 var i = Names.length;
	 Names[i] = name; 
	 CheckFor[i] = check_for; 
	 Errors[i] = message;
	 ExtraInfo[i] = extra_info;
}

/* -----------------------------------------------------------------------------------
Function: 		check_form
Description:	Main function which will process the Names, CheckFor and Errors arrays
							and call appropriate functions for specific type check.
----------------------------------------------------------------------------------- */
function check_form(form)
{

	for (i = 0; i < Names.length; i++)
	{
		type = eval('form.'+Names[i]).type;
		field = eval('form.'+Names[i]);
		msg = Errors[i];
		Xinfo = ExtraInfo[i];
				
		if( type == "text" || type == "textarea" || type == "password" || type == "file")
		{
			if(CheckFor[i] == "US Phone") 
				checkUSPhone(field,msg);
				
			else if(CheckFor[i] == "Email") 
				checkEmail(field,msg);
				
			else if(CheckFor[i] == "Numeric") 
				isNumeric(field,msg);
				
			else if(CheckFor[i] == "Credit Card") 
				checkCard(field,msg);
				
			else if(CheckFor[i] == "Maximum Length")
				checkMaxLength(field,msg,Xinfo);
				
			else if(CheckFor[i] == "Minimum Length")
				checkMinLength(field,msg,Xinfo);
				
			else if(CheckFor[i] == "Alpha-Numeric")
				isAlphaNumeric(field,msg);
				
			else if(CheckFor[i] == "File Extension")
				checkFileExtension(field,msg,Xinfo);
				
			else if(CheckFor[i] == "Confirm")
			{
				field2 = eval('form.'+ Xinfo);	
				checkConfirm(field,field2,msg);
			}
			
			else 
				checkText(field,msg);						
		}
			
		else if(type == "select-one" || type == "select-multiple")
			checkSelect(field,msg);			
			
		//checkbox/radio field has length one		
		else if(type == "checkbox" || type == "radio")	
			checkSingleRadioXBox(field,msg);	
	
		//checkbox/radio field has length greater than one
		else if(!type)
			checkRadioXbox(field,msg);	

		else{}	
	}
	return check_message();	
}


/* -----------------------------------------------------------------------------------
Function: 		check_message
Description:	Check to see if there is any error message collected.
							Return true if no error was found.
							Return false if error was found
----------------------------------------------------------------------------------- */
function check_message()
{
	if(error_message != "")
	{
		alert("Please fill in the following required fields:\n" + error_message);

		//reset error message to blank
		error_message = "";
		
		if(window.focus)
		{
			if(firstfield != "")
			{
			  focusfield = firstfield;
				firstfield = "";
				focusfield.focus();		
			}  
		}
		return false;
	}
return true;
}


/* -----------------------------------------------------------------------------------
Function: 		checkText
Description:	Check for blank value in fields of type TEXT. 
							Add error message if value in blank
----------------------------------------------------------------------------------- */
function checkText(field,error)
{
	if(field.value == "")	
	{
		error_message += error + "\n";	
		if(firstfield == "")
			firstfield = field;
	}
}


/* -----------------------------------------------------------------------------------
Function: 		checkSelect
Description:	Check for a selection from fields of type SELECT (One or Multiple). 
							Add error message if no selection was made.
----------------------------------------------------------------------------------- */
function checkSelect(field,error)
{
	selected = field.selectedIndex;
	
	
	if(selected != "-1" && field[selected].value == "")
	{
		error_message += error + "\n";	
		if(firstfield == "")
			firstfield = field;
	}
}


/* -----------------------------------------------------------------------------------
Function: 		checkSingleRadioXBox
Description:	Check for a selection from fields of type RADIO or CHECKBOX with ONLY ONE
							element. 
							Add error message if no selection was made.
----------------------------------------------------------------------------------- */
function checkSingleRadioXBox(field,error)
{
	if(!field.checked)
		error_message += error + "\n";
}


/* -----------------------------------------------------------------------------------
Function: 		checkRadioXbox
Description:	Check for a selection from fields of type RADIO or CHECKBOX with MORE THAN
							ONE element. 
							Add error message if no selection was made.
----------------------------------------------------------------------------------- */
function checkRadioXbox(field,error)
{
	var checkedOne = 0;

	//loop through the field elements to check for selection
	for(var i = 0; i < field.length; i++)
	{
		if(field[i].checked)
			checkedOne = 1;
	}
	
	if(!checkedOne)
		error_message += error + "\n";	
}

/* -----------------------------------------------------------------------------------
Function: 		checkMaxLength
Description:	Check for maximum length of value
							Add error message if length is greater than maximum characters allowed
----------------------------------------------------------------------------------- */
function checkMaxLength(field,error,maximum)
{
	//checkText(field,error);
	if(field.value.length > maximum)
	{
		error_message += error + "\n";
		if(firstfield == "")
			firstfield = field;
	}
}

/* -----------------------------------------------------------------------------------
Function: 		checkMinLength
Description:	Check for mininum length of value
							Add error message if length is less than minimum characters required
----------------------------------------------------------------------------------- */
function checkMinLength(field,error,minimum)
{
	if(field.value.length < minimum)
	{
		error_message += error + "\n";
		if(firstfield == "")
			firstfield = field;
	}
}


/* -----------------------------------------------------------------------------------
Function: 		CheckCard
Description:	Check to see if credit card number is either a valid Visa, MasterCard
							or American Express.
							Add error message if card number is invalid
----------------------------------------------------------------------------------- */
function checkCard(field,error)
{
	var card = field.value;
	
	if(!( isVisa(card) || isMasterCard(card) || isAmericanExpress(card) ))
	{
		error_message += error + ": invalid card number\n";
		if(firstfield == "")
			firstfield = field;
	}
}


/* -----------------------------------------------------------------------------------
Function: 		isCreditCard
Description:	Check to see if credit card number is valid.
							Return true if a valid number.
							Return false if not a valid number.
----------------------------------------------------------------------------------- */
function isCreditCard(st) 
{
  
	// Encoding only works on cards with less than 19 digits
  if (st.length > 19)
    return (false);

  sum = 0; mul = 1; l = st.length;
  for (i = 0; i < l; i++) {
    digit = st.substring(l-i-1,l-i);
    tproduct = parseInt(digit ,10)*mul;
    if (tproduct >= 10)
      sum += (tproduct % 10) + 1;
    else
      sum += tproduct;
    if (mul == 1)
      mul++;
    else
      mul--;
  }

  if ((sum % 10) == 0)
    return (true);
  else
    return (false);

}


/* -----------------------------------------------------------------------------------
Function: 		isVisa
Description:	Check for valid Visa card number.
							Add error message if not a valid Visa number.
----------------------------------------------------------------------------------- */
function isVisa(cc)
{
  
	//strip all non-digit characters
	cc = stripNotAllowable(cc, "1234567890");
	
	if (((cc.length == 16) || (cc.length == 13)) && (cc.substring(0,1) == 4))
	  return (isCreditCard(cc))
	return false;		
}


/* -----------------------------------------------------------------------------------
Function: 		isMasterCard
Description:	Check for valid MasterCard number.
							Add error message if not a valid MasterCard number.
----------------------------------------------------------------------------------- */
function isMasterCard(cc)
{
  
	//strip all non-digit characters
	cc = stripNotAllowable(cc, "1234567890");
	
	firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 16) && (firstdig == 5) && ((seconddig >= 1) && (seconddig <= 5)))
    return (isCreditCard(cc))
	return false;
}


/* -----------------------------------------------------------------------------------
Function: 		isAmericanExpress
Description:	Check for valid American Express number.
							Add error message if not a valid American Express number.
----------------------------------------------------------------------------------- */
function isAmericanExpress(cc)
{
  
	//strip all non-digit characters
	cc = stripNotAllowable(cc, "1234567890");
	
	firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 15) && (firstdig == 3) && ((seconddig == 4) || (seconddig == 7)))
  	return (isCreditCard(cc))
	return false;
}


/* -----------------------------------------------------------------------------------
Function: 		stripNotAllowable
Description:	Stripping all characters not allowed in a list of allowed characters.
							Return the cleaned up string.
----------------------------------------------------------------------------------- */
function stripNotAllowable(s, allowable)
{ 
	var returnString = "";

  // Search through string's characters one by one.  If character is allowable, append to returnString.	
	for (var i = 0; i < s.length; i++)
	{   
	   var c = s.charAt(i);
	   if (allowable.indexOf(c) != -1) 
		 	returnString += c;
	}
	
	return returnString;
}


/* -----------------------------------------------------------------------------------
Function: 		checkUSPhone
Description:	Check for valid US phone numbers (consists of ten digits)
							Add error message if not a valid number
----------------------------------------------------------------------------------- */
function checkUSPhone(field, error)
{
	
	//make sure that field value exists
	checkText(field,error + ' can not be empty');
	
	if (field.value.length > 0)
	{
		var badformat = 0;
		
		//checking for non-allowable characters
		var str = stripNotAllowable(field.value, "1234567890.()- ");
		badformat = (str.length < field.value.length)?1:0;
		
		//checking for 10 digits
		USPhone = stripNotAllowable(field.value, "1234567890");
		badformat = (USPhone.length != 10 || badformat )?1:0;
		
		if (badformat) 
		{
			error_message += error +": wrong format\n";	
			if(firstfield == "")
				firstfield = field;
		}
	}
}


/* -----------------------------------------------------------------------------------
Function: 		checkEmail
Description:	Check for valid email addresses
							Add error message if not a valid email address
----------------------------------------------------------------------------------- */
function checkEmail(field,error)
{
	
	//make sure that field value exists
	checkText(field,error + ' can not be empty');
	
	if (field.value.length > 0)
	{
		var email = field.value;
		var len = email.length;
		var badformat = false;
		
		//check for illegal characters in email
		illegalChars = stripNotAllowable(email, "'\"\\/()`~!#$%^&*+}{|:;?><,[]");
		
		firstChar = stripNotAllowable(email.charAt(0), ".@");
		lastChar = stripNotAllowable(email.charAt(len - 1), ".@");
		
		//email length must be > 5, there must be an @ and a . and they can not be at the end of the email string
		if (len < 5 || email.indexOf('@') == -1 || firstChar != "" || lastChar != "")
	  	badformat = true;
		else
		{
			var firstAt = email.indexOf('@');
			var afterAt = email.substring(firstAt +1, len);
			
			var Atcounts = stripNotAllowable(afterAt, "@");
			var Pcounts	 = stripNotAllowable(afterAt, ".");
			
			// more @ after first @ or no . after first @ or period is found right after first @ set badformat to true
			badformat = (Atcounts.length > 0 || Pcounts == 0 || email.charAt(firstAt+1)== '.' || illegalChars != '')? true:false;
	
		}
		
		if(badformat)
		{
				error_message += error +": wrong format\n";	
				if(firstfield == "")
					firstfield = field;
		}
	}
}

/* -----------------------------------------------------------------------------------
Function: 		checkConfirm
Description:	Making sure that 2 field values matche. Use for confirming passord, email, etc.
							Add error message if values do not match
----------------------------------------------------------------------------------- */
function checkConfirm(field, field2, error)
{ 
	
	if (field.value != field2.value)
	{
		error_message += error + "\n";	
		if(firstfield == "")
			firstfield = field2;
	}
}	

/* -----------------------------------------------------------------------------------
Function: 		isNumeric
Description:	Checking for numeric value.
							Add error message if value is not numeric
----------------------------------------------------------------------------------- */
function isNumeric(field, error)
{ 
	//make sure that field value exists
	checkText(field,error + ' can not be empty');
	
	if (field.value.length > 0)
	{
		if(isNaN(field.value))
		{
			error_message += error + " must be numeric\n";	
				if(firstfield == "")
					firstfield = field;
		}
	}
}	


/* -----------------------------------------------------------------------------------
Function: 		isAlphaNumeric
Description:	Checking for alpha-numeric value.
							Add error message if value is not alpha-numeric
----------------------------------------------------------------------------------- */
function isAlphaNumeric(field, error)
{ 
	
	//make sure that field value exists
	checkText(field,error + ' can not be empty');
	
	if (field.value.length > 0)
	{
		Alpha = stripNotAllowable(field.value, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
		Numeric = stripNotAllowable(field.value, "0123456789");
		
		if(Alpha.length == 0 || Numeric.length == 0 || (Alpha.length + Numeric.length) < field.value.length)
		{
			error_message += error +  " must be alpha-numeric\n";	
				if(firstfield == "")
					firstfield = field;
		}
	}
}	

/* -----------------------------------------------------------------------------------
Function: 		checkFileExtension
Description:	Checking for a valid file extension when uploading a file.
							Add error message if file extension is not in the allowable extension list
----------------------------------------------------------------------------------- */
function checkFileExtension(field, error, extensions)
{ 
	checkText(field,error + ' can not be empty');
	if (field.value.length > 0)
	{
		var extArray = new Array();
		var extFound = 0;
		
		extensions = extensions.toLowerCase();
		
		// full path of file being uploaded
		file = field.value.toLowerCase();	
		
		// getting the extension for file being uploaded
		ext = file.substring(file.indexOf('.') +1, file.length);
		
		// store allowable extensions in a temp variable
		tempext = extensions;
		
		// get the first comma
		var commaIndex = tempext.indexOf(',');
	
		while (commaIndex > 0)
		{
			sublist = tempext.substring(0, commaIndex);
			extArray[extArray.length] = sublist;	
			tempext = tempext.substring(commaIndex +1,tempext.length);
			commaIndex = tempext.indexOf(',');
			if(commaIndex < 0)
				extArray[extArray.length] = tempext;			
		}
		
		for(var i=0; i < extArray.length; i++)
		{
			if(extArray[i] == ext)		
				extFound = 1;
		}
		
		if(!extFound)
		{
			error_message += error +  ": wrong file extension\n";	
				if(firstfield == "")
					firstfield = field;
		}
	}
}

/**
 * PINT_OnMouseOverHandler()
 * Handler for all onmouseover events. Must be explicitly set as 
 * the function handler.
 * 
 * @param e		event
 * @return		True.
 *
 */
function PINT_OnMouseOverHandler(e) 
	{
	e = (e) ? e : ((window.event) ? window.event : "")
	if (e) 
		{
		var eventsource = PINT_GetEventSource(e);
		if( eval( 'typeof(PINT_MenuTriggers)' ) != 'undefined'  ) 
			{
			typeOfEventSource = typeof(PINT_MenuTriggers[eventsource.id]);
		   	if (typeOfEventSource != 'undefined' ) PINT_MenuPopUp(e);
			}
		else if( eval( 'typeof(PINT_Global.Rollover.triggers)' ) != 'undefined' )
			{
			typeOfEventSource = typeof(PINT_Global.Rollover.triggers[eventsource.id]);
			if (typeOfEventSource != 'undefined' )PINT_RORollover(e);			
			}
	
		PINT_SetWindowStatus();	
		}
	return true;	
	}

/**
 * PINT_OnMouseOutHandler()
 * Handler for all onmouseout events. Must be explicitly set as 
 * the function handler.
 * 
 * @param e		event
 * @return		True.
 *
 */	
function PINT_OnMouseOutHandler(e) 
	{
	e = (e) ? e : ((window.event) ? window.event : "")
	if (e) 
		{
		var eventsource = PINT_GetEventSource(e);
		if( eval( 'typeof(PINT_MenuTriggers)' ) != 'undefined'  ) 
			{
			typeOfEventSource = typeof(PINT_MenuTriggers[eventsource.id]);
		   	if (typeOfEventSource != 'undefined' ) PINT_MenuPopDown(e);	
			}		
		else if( eval( 'typeof(PINT_Global.Rollover.triggers)' ) )
			{
			typeOfEventSource = typeof(PINT_Global.Rollover.triggers[eventsource.id]);
		   	if (typeOfEventSource != 'undefined' ) PINT_RORollout(e);			
			}
		}
	return true;
	}

/**
 * PINT_SetWindowStatus()
 * Set status bar message from parameter or global variable.
 * 
 * @param e		event
 * @return		True.
 *
 */	
function PINT_SetWindowStatus()
	{
	// if no arguments are passed, look for global windowStatus varible
	if( PINT_SetWindowStatus.arguments.length == 0 )
		{
		if( typeof(PINT_Global.Status.windowStatus) != 'undefined' && PINT_Global.Status.windowStatus != "" )
			{
			window.status = PINT_Global.Status.windowStatus;
			PINT_Global.Status.windowStatus = "";
			}
		}	
	else
		window.status = PINT_SetWindowStatus.arguments[0];
	return true;
	}	