/* <origo-fejlec> */

function submitOrigoCommonHead() {
  if (document.ok.legord.value == "1") {
    document.getElementById("mode").value = "1";
    document.getElementById("hol").value = "1";
  }
  /*
    if (document.ok.legord.value == "2") {
    document.getElementById("mode").value = "1";
    document.getElementById("hol").value = "3";
    }
  */
  if (document.ok.legord.value == "3") {
    document.getElementById("mode").value = "2";
    document.getElementById("hol").value = "1";
  }
			
  if (document.ok.legord.value == "4") {
    document.getElementById("mode").value = "1";
    document.getElementById("hol").value = "2";
    document.getElementById("ok").action="http://szotar.sztaki.hu/dict_search.php";
    document.getElementById("W").value = document.getElementById("q").value;
  }
}

/* </origo-fejlec> */

/* <fancy dropdown> */

// FANCY DROPDOWN
// ( V1.3 - 2006.03.25) - initial release, oopless js dropdown
// ( V1.3.2 - 2006.06.29) - added onchange event handler
// ( V1.3.3 - 2006.07.03) - added dirty autoclose
// (bugfix - 07.19) - onchange fix for FF
// =====================


function fancyDropDowns ( pTargetPrefix ) 
{
  allTargets = document.getElementsByTagName("DIV");
  for (var m = 0; m < allTargets.length; m++) 
    { 
      //SCAN THE DOCUMENT FOR TARGETS
      if (String(allTargets[m].id).search( pTargetPrefix + '_' ) != -1)
	{
	  target = allTargets[m].id;
	  addDropDown(target);
	  allDropDowns.push(target);
	}
    }
}

var firstItem = 0; //1: skip first; 0: show all
var allDropDowns = new Array();
var ddmenutimeout = 1000;

function ddHover( self , state)  //HOVER FOR SUBITEMS - ALSO ALLOWS FORCED SWITCHING
{
  if ( state == 1) 
    { 
      self.className += 'Hover'; 
      self.parentNode.parentNode.parentNode.over = 1;
    } else { 
    self.className = String(self.className).replace('Hover',''); 
    self.parentNode.parentNode.parentNode.over = 0;
    setTimeout('ddClose()', ddmenutimeout);
  }
}

function ddHeaderIn( self ) //HOVER FOR HEADER, WO CLASSES
{
  self.parentNode.parentNode.over = 1;
}

function ddHeaderOut( self )
{
  self.parentNode.parentNode.over = 0;
  setTimeout("ddClose()", ddmenutimeout);
}

function ddListFlip( self ) //NEEDS "SELF" INSTEAD OF "THIS", SINCE WE USE DYNAMIC STUFF HERE
{
  //CLOSE OPENED LISTS, EXCEPT FOR THE CURRENT ONE
  for (var m = 0; m < allDropDowns.length; m++) 
    {
      if ((self.parentNode.parentNode.id) != (allDropDowns[m])) {
	subDiv = document.getElementById(allDropDowns[m]).getElementsByTagName("div"); subDiv = subDiv[0];
	subDiv = subDiv.getElementsByTagName("div"); subDiv = subDiv[0];
	subDiv.style.display = "none";
      }
    }
		
  //NOW FLIP-FLOP THE CURRENT ONE
  subDiv = (self.parentNode.getElementsByTagName("div"))[0];
  if (subDiv.style.display == "none") { subDiv.style.display = "block"; }
  else { subDiv.style.display = "none"; }
}

function ddListSelect( self, pSelNum)
{
	
  //UPDATE THE REAL CONTROL
  selectBox = (self.parentNode.parentNode.parentNode.parentNode.getElementsByTagName("SELECT"))[0];
  if (selectBox.type == "select-multiple") { multiSel = 1; } else { multiSel = 0; }
  selOptions = selectBox.getElementsByTagName("OPTION");
  if (multiSel == 0) 
    { 
      previousSelection = selectBox.selectedIndex;
      for (var i = 0; i < selOptions.length; i++) { selOptions[i].selected = false; }
		
      //GENERATE ONCHANGE EVENT IF NEEDED
      doOnChange = false;
      if ((selectBox.onchange) && (selOptions[pSelNum].value != selectBox.options[previousSelection].value)) { doOnChange = true; }
      selOptions[pSelNum].selected = true;
      if (doOnChange) { selectBox.onchange(); }

      eval(preGatherCode(selOptions[pSelNum].onclick)); //EVAL THE ORIGINAL COMMAND
    }
  else
    {
      selOptions[pSelNum].selected = !(selOptions[pSelNum].selected);
      eval(preGatherCode(selOptions[pSelNum].onclick));
    }

		
  //HIDE FAKE DROPDOWN IF NOT MULTISELECT
  if (multiSel == 0) { self.parentNode.style.display = "none"; }

  //UPDATE THE DUMMYCONTROL'S SELECTION
  selectedDummy = (self.parentNode.parentNode.getElementsByTagName("SPAN"))[0];
  selectedDummy.innerHTML='';
  selCount = 0; 
  for (var i = 0; i < selOptions.length; i++) { if (selOptions[i].selected == true) { selCount = i; } }
  for (var i = 0; i < selOptions.length; i++) 
    { 
      if (selOptions[i].selected == true) {
	selectedDummy.innerHTML += selOptions[i].text
	  if ((multiSel == 1) && (i<selCount)) { selectedDummy.innerHTML += ', '; } 
      } 
    }
  if (selectedDummy.innerHTML == '') { selectedDummy.innerHTML = selOptions[0].text; }
	
	
  //RESET STYLES (REMOVE ACT) ON ITEMS
  if (multiSel == 0) { 
    dropdItems = self.parentNode.getElementsByTagName("SPAN");
    for (var i = 0; i < dropdItems.length; i++)
      {
	dropdItems[i].className = String(dropdItems[i].className).replace ( 'Act','');
      }
  }
	
  //CLEAN HOVERSTATE AND ADD ACT FLAG (STYLE)
  ddHover(self,0);
  if (multiSel == 0) { self.className += 'Act'; }
  else
    {
      if (String(self.className).search('Act') != -1) { self.className = String(self.className).replace('Act',''); }
      else { self.className += 'Act'; }
    }
	
  //DON NOT LET IT CLOSE
  self.parentNode.parentNode.parentNode.over = 1;
}


function ddClose ( pString )
{
  //(document.getElementById(pTargetId).getElementsByTagName("div"))[0].style.display == "none";
  for (var m = 0; m < allDropDowns.length; m++) //SCAN ALL DROPDOWNS AND CLOSE THE ONES WE ARE NOT HOVERING UPON
    {
      if (document.getElementById(allDropDowns[m]).over == 0) 
	{
	  subDiv = document.getElementById(allDropDowns[m]).getElementsByTagName("div"); subDiv = subDiv[0];
	  subDiv = subDiv.getElementsByTagName("div"); subDiv = subDiv[0];
	  subDiv.style.display = "none";
	}
    }
}


function addDropDown ( pTarget ) 
{
  coreDiv = document.getElementById ( pTarget );
  selectBox = (coreDiv.getElementsByTagName("SELECT"))[0];
  selectBox.tabIndex = -1; /*SORRY, THIS IS A ONE WAY TICKET*/
  selOptions = selectBox.getElementsByTagName("OPTION");
  baseClass = selectBox.className;

  //BUILD INNERHTML	
  previousSels = new Array();
  subId = String(pTarget).replace('_','')+'Sub'; //THE ORDER BELLOW IS IMPORTANT!
  innerCode =
    '<div id="' + subId + '" class="' + baseClass + '" style="">' +
    '<span class="' + baseClass + 'Selected" onClick="ddListFlip(this)" ' +
    'onMouseOver="javascript:this.className=\''+baseClass+'SelectedHover\';ddHeaderIn(this)" ' +
    'onMouseOut="javascript:this.className=\''+baseClass+'Selected\';ddHeaderOut(this)" >_%TOP%_</span>' +
    '<div class="' + baseClass + 'List" style="display: none;">';
  for (var i = firstItem; i < selOptions.length; i++) 
    {
      if (selOptions[i].selected) 
	{ isAct='Act'; previousSels.push(selOptions[i].text)} 
      else { isAct=''; }
      innerCode += '<span '+
	'class="' + baseClass + 'Item' + isAct + '" ' +
	'onClick="ddListSelect( this, ' + i + ')" ' +
	'onMouseOver="ddHover(this,1)" ' +
	'onMouseOut="ddHover(this,0)">' + selOptions[i].text + '</span>';
    }	
  innerCode += '</div></div><!--#ES-->';

  //FILL IN PREVIOUS/PREDEFINED DATA (IT MAY BE NEEDED)
  sPrevSel = new String('');
  for (var i = 0; i < previousSels.length; i++)
    {
      sPrevSel += previousSels[i];
      if (i<previousSels.length-1) { sPrevSel += ', '; }
    }
  if ((previousSels.length)==0) { sPrevSel = selOptions[0].text; }
  innerCode = innerCode.replace('_%TOP%_',sPrevSel);
	
  //FINALLY: INJECT DATA
  coreDiv.innerHTML = coreDiv.innerHTML + innerCode;
}

function preGatherCode ( pString ) {
  if ((String(pString) != 'undefined') && (String(pString) != 'null'))
    {
      startPos = String(pString).search('{')+1;
      endPos = String(pString).length-2;
      return(String(pString).substring(startPos, endPos));
    } else return('');
}

// MISC FUNCTIONS

function hideShowDropDown ( pTarget, pState) //EXAMPLE: HOW TO REACH SUBCONTROLS BY THEIR ID
{
  subId = String(pTarget).replace('_','')+'Sub';

  if (document.getElementById(subId) != 'null' ) 
    {
      if (pState != 1 ) { document.getElementById(subId).style.display = 'none'; }
      else { document.getElementById(subId).style.display = 'block'; }
    }
}

function destroyDropDown ( pTarget ) //RIGHT NOW IT IS BROKEN, DON'T USE IT PLEASE 
{
  targetHTML = String(document.getElementById( pTarget ).innerHTML);
  subId = String(pTarget).replace('_','')+'Sub';
	
  startPos = targetHTML.search('<div id="'+subId)-1;
  endPos = targetHTML.search('</div></div><!--#ES-->')+22;
	
  subTargetHTML = targetHTML.substring(startPos,endPos);
  document.getElementById( pTarget ).innerHTML = String(targetHTML.replace(subTargetHTML,'') + "\n");
}

/* </fancy dropdown> */
