window.document.onkeypress = OnKeyPress;
window.document.onclick = OnClick;

function setupEventObject(e) 
{
  // Map NS event object to IEs
  if (e==null) return; // IE returns
  window.event = e;
  window.event.fromElement = e.target;
  window.event.toElement = e.target;
  window.event.srcElement = e.target;
  window.event.x = e.x;
  window.event.y = e.y;
}

function OnClick(e)
{
  setupEventObject(e);
  if(typeof mblnDANorder!="undefined" && mblnDANorder)
  {
	  if(window.event.srcElement.name=='O_EFP')
	  {
	  	UpdateSession(window.event.srcElement);
	  }
	  if(window.event.srcElement.name=='O_D_QQ_B')
	  {
	  	QQOrder('true',document.getElementById("O_D_1_C").value);
	  }
	  if(window.event.srcElement.name=='O_D_QQ_S')
	  {
	  	QQOrder('false',document.getElementById("O_D_1_C").value);
	  }
	  if(document.getElementById("msg")!=null && document.getElementById("msg").style.display=='block')
	  {	  
	    hm();
	  }
	}
}

function OnKeyPress(e) 
{
  setupEventObject(e);
  if (window.event.keyCode == 13) 
  {
    var objElement;
    if(typeof mblnDANorder!="undefined" && mblnDANorder)
    {
      if(document.getElementById("msg") && document.getElementById("msg").style.display=='block')
      {
        hm();
        return false;
      }
      else if(miPopUp!=mPopUp.closed)
      {
        if(miPopUp==mPopUp.drill)CloseWin();
        else if(miPopUp==mPopUp.statement)CW('true');        
        return false;
      }
      else objElement=event.srcElement;
    }
    else
      objElement=EffectiveActiveElement();    
    if(objElement==null)
    {
		  //grab from hidden field in RANweb HTML Layout
		  var objselopttxt = document.getElementById("selopttxt");
		  if(objselopttxt!=null)
		  {
		  	alert(objselopttxt.value);
		  }
		  else
		  {
		  	alert("Please select an option.");
		  }
    }
    else
    {
		  var strTagName = objElement.tagName;
		  var objTags = document.all;
		  var blnHaveFoundElement, objCurrentElement;
		  
		  if(objElement.type!="textarea")
		  {
		  	for (var c=objElement.sourceIndex;c<objTags.length;c++) 
		  	{
		  		objCurrentElement = objTags.item(c);
		  		// Note that we check the element to see if it is selectable.
		  		if (blnHaveFoundElement) 
		  		{
		  			if (TestActivate(objCurrentElement))return false;		  			
		  		} 
		  		else if (objCurrentElement == objElement) 
		  		{
		  			if (TestActivate(objElement))return false;		  			
		  			blnHaveFoundElement = true;
		  		}
		  	}
		  }
  	}
  }
}

function TestActivate(objElement)
{
  var lngIndex;  
  if(typeof mblnDANorder!="undefined" && mblnDANorder)  
  {
    //check it's a button
    if(objElement.tagName=='IMG' || objElement.tagName=='A' || objElement.tagName=='SPAN')
    { 
      objElement=objElement.cloneNode();       
      if(objElement.outerHTML.indexOf('onclick=hg(')==-1 && objElement.outerHTML.indexOf('onclick')!=-1 && objElement.id!='flip')
      {
        var strF=objElement.onclick.toString();
        var o1=strF.indexOf("{");
        var o2=strF.indexOf("}");
        eval(strF.substring(o1+1,o2-1));
        return true;
      }
    }    
  }
  else if (objElement.tagName == "A")
  {
    //check this is a button and not a help link          
    lngIndex=objElement.outerHTML.indexOf("onclick='");
    if(lngIndex > 0)
    {
      ActivateButton(objElement,lngIndex);
      return true;        
    }
  }  
  return false;
}

function EffectiveActiveElement() 
{
  var objElement = document.activeElement;

  switch(objElement.tagName)
  {
	  case "IMG" :
		  var objA=getAncestor(objElement,"A");
		  if (objA!=null)
		  {
		  	return objA;	
		  }
		  else
		  {
		  	return objElement;
		  }
  	case "BODY":
	  	var objTags = document.all;
	      
		  for (var lngCounter = 0; lngCounter < objTags.length; lngCounter++) 
		  {
		    objElement = objTags.item(lngCounter);
		  	if (objElement.tagName == "A") 
		  	{
		  		if (objElement.href.indexOf("rantab=") != -1) 
		  		{
		  		  return objElement;
		  		}
		  	}
		  }
  	default :
 		return objElement;
  }
}

function getAncestor(objSource,strTag) 
{
	while (objSource.tagName!=strTag)objSource=objSource.parentNode;	
	return objSource;
}

function ActivateButton(objElement,lngIndex)
{
  var strHRef = objElement.outerHTML;
  var lngEndIndex;  
  //find start
  lngIndex=lngIndex + 9;
  strHRef=strHRef.substr(lngIndex);
  //find end
  lngEndIndex=strHRef.indexOf(")'");
  if(lngEndIndex>0)
  {
    strHRef=unescape(strHRef.substr(0,lngEndIndex+1));
    eval(strHRef);
  }
}

function FastActivate(objE)
{
  switch(objE.name + objE.id)
  {
	  case "O_IA" : 
	    SWA(document.all.O_IA.value);
	    break;
	  case "pageSize" : 
	    UpdateData(marrReports[mlngCurrentReport].Name,'1',document.all.pageSize.value,document.all.Filter?document.all.Filter.value:'');
	    break;
	  case "pageSize2" : 
	    UpdateData(marrReports[mlngCurrentReport].Name,'1',document.all.pageSize2.value,document.all.Filter?document.all.Filter.value:'');
	    break;
	  case "ImageSwitchAccount" :
	    SWA(document.all.O_IA.value);
	    break;
    case "btnRF" :
      RF(marrReports[mlngCurrentReport].Name,"");
      break;
    case "O_QO" :
      QO(false);
      break;
    case "O_QC" :
      QQ();
      break;
    case "QC_G" :
      QQ();
      break;
    case "QO_S" :
      QO(false);
      break;
    case "QO_P" :
    	QO(true);
    	break;
	}
}

function checkEnter(event,run)
{ 	
if (event.keyCode==13){
	b("LogOn", "ranWeb.asp?actionid=377&ranButton=LogOn&run="+run);
	return false;
	}
}

function checkEnterIntro(event,run)
{ 	
if (event.keyCode==13){
	b("LogOn", "ranWeb.asp?ranApplication=static&ranMenu=intro&staticid=intro&clearCriteria=true&applayoutid=203&actionid=377&ranButton=LogOn&run="+run);
	return false;
	}
}


function listaORlistb(lista, listb, lista_hide, listb_hide) {
var emptylista = allEmpty(lista);
var emptylistb = allEmpty(listb);


	if ((emptylista == true) && (emptylistb == true)) {
		enableElements(lista);
		showElements(lista_hide);
		enableElements(listb);
		showElements(listb_hide);
	} else {
		if (emptylista == true) {
			disableElements(lista);
			hideElements(lista_hide);
			enableElements(listb);
			showElements(listb_hide);
		} else {
			disableElements(listb);
			hideElements(listb_hide);
			showElements(lista_hide);
		}
	}	
}



function allEmpty(list) {
var alist = list.split(",");

	for (var i = 0; i < alist.length; i++) {
	   var e = document.getElementById(alist[i]);
	   if (e) {
		if (e.value == "") {
		} else {
			return false;
		}
	   }
	}	
	return true;
}


function enableElements(list) {
var alist = list.split(",");

	for (var i = 0; i < alist.length; i++) {
	   var e = document.getElementById(alist[i]);
	   if (e) {
	   	if(e.className != "allowall") {
			e.disabled = false;
			e.className = "enable";
		}
	   }
	}
}


function justEnableElements(list) {
var alist = list.split(",");

	for (var i = 0; i < alist.length; i++) {
	   var e = document.getElementById(alist[i]);
	   if (e) {
	   	if(e.className != "allowall") {
			e.disabled = false;
		}
	   }
	}
}


function disableElements(list) {
var alist = list.split(",");

	for (var i = 0; i < alist.length; i++) {
	   var e = document.getElementById(alist[i]);
	   if (e) {
		e.disabled = true;
		e.className = "disable";
	   }
	}
}


function hideElements(list) {
var alist = list.split(",");

	for (var i = 0; i < alist.length; i++) {
	   var e = document.getElementById(alist[i]);
	   if (e) {
		e.className = "hide";
	   }
	}
}

function showElements(list) {
var alist = list.split(",");
	for (var i = 0; i < alist.length; i++) {
	   var e = document.getElementById(alist[i]);
	   if (e) {
		e.className = "show";
	   }
	}
}

function clear(id1, id2) {
  var e1 = document.getElementById(id1);
  var e2 = document.getElementById(id2);
  if (e1) {
  	e1.value = "";
  	e1.onchange();
	e1.disabled = false;
	e1.className = "enable";
  }
  if (e2) {
  	e2.value = "false";
  }
}

function allowall(id1, id2,  msg) {
  var e1 = document.getElementById(id1);
  var e2 = document.getElementById(id2);
  if (e1) {
  	e1.value = msg;
	e1.disabled = true;
	e1.className = "allowall";
	e1.onchange();
  }
  if (e2) {
  	e2.value = "true";
  }
}