/**
 * Global stuff
 */
if (navigator.userAgent.indexOf("Safari") > 0)
{
  isSafari = true;
  isMoz = false;
  isIE = false;
}
else if (navigator.product == "Gecko")
{
  isSafari = false;
  isMoz = true;
  isIE = false;
}
else
{
  isSafari = false;
  isMoz = false;
  isIE = true;
}

function getObj (name) 
{
	if (document.getElementById)
		return document.getElementById(name);
	else if (document.all)
		return document.all[name];
	else if (document.layers)
		return document.layers[name];
}

// Search Form Redirect
function submitForm(strForm)
{
	objForm = document.forms[strForm];

	var strSite = "";
	for (i=0, n=objForm.site.length; i<n; i++)
	{
  	if (objForm.site[i].checked)
  	{
     	strSite = objForm.site[i].value;
      break;
   	}
  }	    
  
  if (strSite!="")           
  {                                     
  	// Clear rights radiobox (will be forced to 2
  	if (strSite.indexOf("editorial")>-1)
  	{
			for (i=0, n=objForm.rights.length; i<n; i++)
			{
		  	objForm.rights[i].checked = false;
		  }	    
  	}
  	
  	
  	objForm.action = strSite;
  	objForm.submit();
  }
  else
  {
  	if (objAutoForm!=undefined)
  		objAutoForm.showPopup();
	  	
  	
  }
  		
  
}


function addListener(element, type, listener) 
{
  if(element.addEventListener) {
    element.addEventListener(type, listener, false);
  } else {
    element.attachEvent('on' + type, listener);
  }
}

function removeListener(element, type, listener) 
{
  if(element.removeEventListener) {
    element.removeEventListener(type, listener, false);
  } else {
    element.detachEvent('on' + type, listener);
  }
}


function addKeyListener(element, listener) 
{
  if (isSafari)
	element.addEventListener("keyup",listener,false);
  else if (isMoz)
	element.addEventListener("keyup",listener,false);
  else
	element.attachEvent("onkeyup",listener);
}

function removeKeyListener(element, listener) 
{
  if (isSafari)
	element.removeEventListener("keyup",listener,false);
  else if (isMoz)
	element.removeEventListener("keyup",listener,false);
  else
	element.detachEvent("onkeyup",listener);
}




/**
 * The autocomplete thingie
*/
function AutoForm(astrSource, astrTarget) 
{
	var oSource			= getObj(astrSource);
	var oTarget			= getObj(astrTarget);
	var oClearInterval	= null;
	var oInterval		= null;
	
	this.showPopup=showTarget;
	
	function clearTimeOut()
	{
		clearInterval(oInterval);
	}
	
	function setTimeOut()
	{
		clearTimeOut();	
		oInterval = setInterval(showTarget, 500);
	}
	
	function hideTarget()
	{   
		clearInterval(oClearInterval);

		if(oTarget.style.visibility == 'hidden')
			return;

		//removeListener(oTarget, "blur", handleTargetBlur);
		removeListener(oTarget, "focus", handleTargetFocus);
		
		oTarget.style.visibility = 'hidden'
		oTarget.style.display = 'none';
		oTarget.options.length = 0;
	}
	
	function showTarget()
	{
		if(oTarget.style.visibility == 'visible')
			return;
		
		//addListener(oTarget, "blur", handleTargetBlur);
		addListener(oTarget, "focus", handleTargetFocus);
		
		oTarget.style.visibility = 'visible'
		oTarget.style.display = 'block';
	}
	
	function handleKeyDown(e) {
		//if (oSource.value.length < 3 || e.keyCode == 9)
		//	return;
		
		setTimeOut();
	}
	
	function handleTargetBlur(e)
	{
		hideTarget();
	}

	function handleTargetFocus(e)
	{
		clearInterval(oClearInterval);
	}
	
	function handleSourceBlur(e)
	{
		oClearInterval = setInterval(hideTarget, 200);
	}
	
	// listen to typing in source
	addListener(oSource, 'focus', showTarget);
}