//========================================================================
// Description: Common methods used by Search USBC javascript client libs 
//				
//========================================================================

var Common_EnterKeyTrapEnabled = true;


//========================================================================
// Common_GetKeyCode
// Description: Returns browser independant keycode
//
//========================================================================
function Common_GetKeyCode(e)
{
	if(window.event)
    {
    	return window.event.keyCode;   //IE    	
    }
    else
    {
    	return e.which;     //Firefox    	
    }
}

//========================================================================
// Common_GetKeyCode
// Description: Returns browser independant keycode
//
//========================================================================
function Common_TrapEnterKey(e) 
{ 

	if(Common_EnterKeyTrapEnabled == false)
	{ Common_EnterKeyTrapEnabled = true;
	  return true; 
	}

	var key = Common_GetKeyCode(e);
	
	if (key==13)
	{ window.event.keyCode = 0;
	}
	
	if(window.event)  //IE
    { key = window.event.keyCode;
	  
	  return false;
	}
     else // Non IE
    { key = e.which;
	  if(key ==13)
	  {
		 e.stopPropagation();
	     e.preventDefault();
	  }
	  return false;
	}
	return true;
} 

//========================================================================
// Common_ProcessEnterKey
// Description: Allows the trap method to be bypassed for form fields
//				that require enter key use.
//
//========================================================================
function Common_ProcessEnterKey(e)
{
	if (Common_IsEnterKey(e))
	{
		Common_EnterKeyTrapEnabled=false;
	}
}

//========================================================================
// Common_isEnterKey
// Description: Determines if the key press is the enter key
//
//========================================================================
function Common_IsEnterKey(e)
{
	var key = Common_GetKeyCode(e);
	
	if (key==13) 
	{ return true; }
	
	return false;
}

//========================================================================
// Common_IsAlphaNumeric
// Description: Determines if the key press is AlphaNumeric
//
//========================================================================
function Common_IsAlphaNumeric(e,allowableKeys)
{
	var key = Common_GetKeyCode(e);
	
	
	if (key == 8 || key==9 || key==32 || key==0 )
	{	return true; }
	
	if ((key >=48 && key <= 57))
	{	return true; }
	
	if ((key >=65 && key <= 90))
	{	return true; }
	
	if ((key >=97 && key <= 122))
	{	return true; }
	
	if (allowableKeys != null)
	{
		for (i=0; i <= allowableKeys.length -1; i++)
		{
		   if (key == allowableKeys[i])
		   {
			 return true;
		   }
		} 
	}

	return false;
}

//========================================================================
// Common_IsAlphaNumeric
// Description: Determines if the key press is Numeric
//
//========================================================================
function Common_IsNumeric(e,allowableKeys)
{
	var key = Common_GetKeyCode(e);
		
	if (key == 8 ||  key==9 || key==0)
	{ return true; }
	
	if ((key >=48 && key <= 57))
	{ return true; }
	
	if (allowableKeys != null)
	{
		for (i=0; i <= allowableKeys.length -1; i++)
		{
		   if (key == allowableKeys[i])
		   {
			 return true;
		   }
		} 
	}

	
	return false;
}

//========================================================================
// Common_SetFormElementValue
// Description: Abstraction for setting the value of form elements
//
//========================================================================
function Common_SetFormElementValue(id,value)
{
	element = document.getElementById(id);
	
	switch(element.type)
	{
		case 'radio':
		
			elements = document.getElementsByName(id);
			
			for(var i = 0; i < elements.length; i++) 
			{				
				if(elements[i].value == value) 
				{
					elements[i].checked = true;
				}
				else
				{
					elements[i].checked = false;
				}
			}

			break;
			
		case 'select-one':
				
			for(var i = 0; i < element.options.length; i++) 
			{				
				if(element.options[i].value == value) 
				{
					element.selectedIndex = i;
				}
			}
		
		break;
		
		default: return;
	}
}

