/** ***********************************************************
  * * Header block Form Control functions
	* ***********************************************************
 **/
 var dk_div_timer;	
 function dk_div_toggle(pId) {

		var zType = (document.getElementById(pId).className.indexOf('show')!=-1) ? 'hide' : 'show'		
		dk_div_do(pId, zType)
	 	hideWindowsControls(pId+'_inner');
 } 
 function dk_div_toggle_pos(pId,pObj) {
		var c = dk_get_position_rel(pObj.id, true);
		var o = document.getElementById(pId)
		o.style.top = (c.top+c.height)+'px'
		o.style.left = c.left+'px'
		o.style.position = 'absolute';		
		o.style.zIndex = 999;		
		var zType = (o.className.indexOf('show')!=-1) ? 'hide' : 'show'		
		dk_div_do(pId, zType)
	 	hideWindowsControls(pId+'_inner');
 } 
 function dk_get_position_rel(pTag) {
		var c=new Object();						
		var o=document.getElementById(pTag);	
		
		if (document.all) {
			c.availHeight= document.body.clientHeight
			c.availWidth= document.body.clientWidth
		} else {
			c.availHeight = window.innerHeight
			c.availWidth = window.innerWidth
		}
		
		c.height=o.offsetHeight; c.width=o.offsetWidth	

		c.left=0; c.top=0;
		var zRelative = false
		while (o!=null) { 
			if (o.style.position=='relative')
				zRelative=true
			else {
				c.left += o.offsetLeft; 
				c.top += o.offsetTop; 
			}
			o = (zRelative) ? null : o.offsetParent;
		}		
		
		
		if (!zRelative) {
			c.top = c.top - document.documentElement.scrollTop
			c.left = c.left - document.documentElement.scrollLeft
		}
		
		c.maxWidth = c.availWidth - c.left + 1
		if (c.left < 0) c.left = 0;
		return c;
	}


 function dk_div_do_timer(pId, pType) {
	  dk_div_timer = setTimeout("dk_div_do('"+pId+"','"+pType+"')", 300)
 }
 function dk_div_clear_timer() {
	 	clearTimeout(dk_div_timer)
 }
 function dk_div_do(pId, pType) {
	 	dk_div_clear_timer()
		var o = document.getElementById(pId)
		if (pType!='show') o.className = o.className.replace('show','hide')
		else o.className = o.className.replace('hide','show')
 }
	function dk_header_form_submit(pAdvanced) {	 
		if (dk_invalid_post()) return;
		if (pAdvanced) {
			document.dk_frmopac.advanced.value = 'T';
			document.dk_frmopac.action = DK_list;
		} else {		 
			if (document.dk_frmopac.Data1.value=='') {
				document.dk_frmopac.Data1.focus();
				return;
			}
			document.dk_frmopac.advanced.value = 'F';
		}
		document.dk_frmopac.action = DK_search
		document.dk_frmopac.submit();
		dk_already_posted = true;
	}
/** ***********************************************************
  * * Form Control functions
	* ***********************************************************
 **/
function dk_form_submit() {
	if (dk_invalid_post()) return false;
	if (document.dk_frmopac.Data1.value=='') {
		document.dk_frmopac.Data1.focus();
		return false;
	}
	dk_already_posted = true;
	return true;
}
function dk_valid_enter(e) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	//if (keycode==13) document.dk_frmopac.submit();
	return false;
}
function dk_isenter(e) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	return (keycode==13) ? true : false;
}
function dk_shortcut(e, pURL, pParams, pValue, pType) {
		if (pType=='id') {
			zValue = document.getElementById(pValue).value;
		} else {
			if (!dk_isenter(e)) return;
			zValue = pValue;
		}
		if (zValue=='') return;
		
		dk_global_post_params(pURL, pParams+"&Data1="+zValue);
}

function dk_update_form_summary() {
	/* Update the REMINDER status area */
	var oSummary = new Object()
	oSummary.annexes = ''
	// Database
		if (!document.dk_frmopac.database.length) {
			oSummary.dbdesc = dk_db_desc[0];
			oSummary.dbdef = 'T';
		} else {
			for (var i=0;i<document.dk_frmopac.database.length;i++) {
				if (document.dk_frmopac.database[i].checked) {
					oSummary.dbdesc = dk_db_desc[document.dk_frmopac.database[i].value]
					oSummary.dbdef = (dk_db_def[document.dk_frmopac.database[i].value]=='T')
				}
			}
		}
	// Annexe
		if (oSummary.dbdef) {
			var zelems = document.dk_frmopac.elements;
			var zChkName = 'dk_annexe'
			for (var i=0;i<zelems.length;i++) {
				if (zelems[i].name) {
					if (zelems[i].name.substr(0,zChkName.length)==zChkName) {
						if (zelems[i].checked) {
							oSummary.annexes += ', ' + document.getElementById("dk_annexe_text_"+zelems[i].value).innerHTML
						}
					}
				}
			}
			if (oSummary.annexes!='') oSummary.annexes = oSummary.annexes.substr(1)
		}
		oSummary.criteria = dk_get_form_selection('Use1', 'selection')		
		oSummary.support = dk_get_form_selection('Keys2', '')
		oSummary.newitem = dk_get_form_chk('Restrict_Use10', 'dk_restrict_use10desc')
		oSummary.phonetic = dk_get_form_chk('ForcePhonetic', 'dk_forcephoneticdesc')
		oSummary.plural = dk_get_form_chk('ForcePlural', 'dk_forcepluraldesc')

		oSummary.order = dk_get_form_selection('SortKey', '')
	
		zText = ''
		if (dk_form_simple_annexes!='T') 
			if (!oSummary.dbdef) zText += '<li>'+oSummary.dbdesc+'</li>' ;
		if (dk_form_simple_annexes!='T') 
			if (oSummary.annexes!='') zText += '<li>'+oSummary.annexes+'</li>' ;
		if (dk_form_simple_criteria!='T') 
			if ((oSummary.criteria.value!='') && (oSummary.criteria.value!='1035')) zText += '<li>'+oSummary.criteria.desc+'</li>' ;
		if (dk_form_simple_doctype!='T') 
			if (oSummary.support.value!='') zText += '<li>'+oSummary.support.desc+'</li>';
			
		if (oSummary.plural!=null) zText += '<li>'+oSummary.plural+'</li>' 
		if (oSummary.phonetic!=null) zText += '<li>'+oSummary.phonetic+'</li>' 
		if (oSummary.order.value!='') zText += '<li><span>Classement : '+oSummary.order.desc+'</span></li>' 

		// This for the Header input form (opac15 shortcut)
		if (!document.getElementById("dk_advancedoptions_desc_container")) return;

		if (zText!='') {
			document.getElementById("dk_advancedoptions_desc").innerHTML = '<ul>'+zText+'</ul>';
		} else {
			document.getElementById("dk_advancedoptions_desc").innerHTML = ''
		}
}

function dk_reminder_state() {
	/* Show or Hide - that is the question */
	if (!document.getElementById("dk_advancedoptions_desc_container")) return;

	var advancedoptions = document.getElementById("dk_advancedoptions")
	var bShow = (advancedoptions.className.indexOf("hide")==-1)
	
	if ((bShow) || (document.getElementById("dk_advancedoptions_desc").innerHTML=='')) {
		document.getElementById("dk_advancedoptions_desc").innerHTML = ''
		document.getElementById("dk_advancedoptions_desc_container").className='hide'
	} else {
		document.getElementById("dk_advancedoptions_desc_container").className='show'		
	}
	
}


function dk_toggle_advanced(pIdParent, pId) {
	/* Toggle/Hide the Advanced area */
	dk_divtoggle(pIdParent, pId) 
	dk_update_form_summary()
	dk_reminder_state()
	
}
function dk_advancedreset() {
	/* Reset the advanced options */
	dk_main_form_annexe_click(true)

	// iterate to rub out all fields
	for (i=0;i<document.dk_frmopac.length;i++) {
		if (document.dk_frmopac[i]) {
			switch (document.dk_frmopac[i].tagName.toLowerCase()) {
			case 'select':
				for (j=0; j<document.dk_frmopac[i].options.length;j++) {
					var option = document.dk_frmopac[i].options[j]
					option.selected = (j==0);
				}
				break;
			case 'input':
				switch (document.dk_frmopac[i].type.toLowerCase()) {
				case 'text':
					document.dk_frmopac[i].value = ''
					break;
				case 'radio':
					if (document.dk_frmopac[i].name!='database') 
						document.dk_frmopac[i].checked = false
					break;
				case 'checkbox':
					document.dk_frmopac[i].checked = false
					break;
				default:
					break;
				}
			default:
				break;
			}
		}
	}
	dk_update_form_summary()
	dk_reminder_state()

}
function dk_get_form_chk(pFormName, pId) {
	var o = eval('document.dk_frmopac.'+pFormName)
	var d = document.getElementById(pId)
	
	if (!o) return false
	
	return (o.checked && !o.disabled && !o.defaultChecked) ? d.innerHTML : null;
}
function dk_get_form_selection(pFormName, pType) {
	var o = new Object()
	o.value='';
	o.desc = 'pas trouvé dans : dk_get_form_selection() '+pFormName;
	var zelems = eval('document.dk_frmopac.'+pFormName);
	
	var zChkName = pFormName
	if (zelems && zelems.options) {
		for (var i=0;i<zelems.options.length;i++) {
			if (zelems[i].selected) {
				o.desc = zelems[i].innerHTML
				if (pType=='') {
					if (!zelems.disabled && !zelems[i].value=='') o.value = zelems[i].value
				} else {
					if (!zelems.disabled && !zelems[i].defaultSelected) o.value = zelems[i].value
				}
				if (o.value==o.desc) o.value=''
			}
		}
	} else {
		o.desc = '';
	}
	return o
}
function dk_init_form_main() {
	dk_init_form(true)
	dk_reminder_state()
}
function dk_init_form_head() {
	dk_init_form()
}
function dk_init_form(pMain) {
	dk_update_form();
	if (pMain) dk_update_form_summary();
	if (pMain) document.dk_frmopac.Data1.focus();
}
function dk_update_form(dbname) {	
	if (typeof(dbname!='string')) dbname=null;

	if (!dbname) {
	 	var o = document.getElementById('dk_form_defaultdatabase')
		if ((o.type.toLowerCase()=='radio') && document.dk_frmopac.database.length) {
			for (var i=0;i<document.dk_frmopac.database.length;i++) {
				if (document.dk_frmopac.database[i].checked) dbname = document.dk_frmopac.database[i].value
			}
			if (!dbname) {			
				document.dk_frmopac.database[0].checked= true
				dbname = document.dk_frmopac.database[0].value
			}
		} else {
			dbname = document.dk_frmopac.database.value
		}
	}
	
	
	//var annexe_list = ' '+dk_valid_annx[dbname]+' ';
	var annexe_list = ';'+dk_valid_annexe[dbname]+';';
	
	
	if (dk_db_def[dbname]=='T') {
		try {var desc = document.getElementById('dk_form_defaultdatabase_desc').innerHTML} catch (e) {}
		try {document.getElementById("dk_header_annexe_select").innerHTML = desc} catch (e) {}
		// Need to get the Annexe information
		if (dk_valid_annexe[dbname]) {
			for (var i=0;i<document.dk_frmopac.length; i++) {
				var item=document.dk_frmopac[i]; 
				if (item.name) {
					if (item.name.substr(0,9)=='dk_annexe') {
						//item.checked = (annexe_list.indexOf(' '+item.value+' ')!=-1)
						item.checked = (annexe_list.indexOf(';*'+item.value+';')!=-1)
					}
				}
			}
		}
		/*
		*/
		dk_main_form_annexe_click();
	} else {
	 	for (var i=0;i<document.dk_frmopac.length; i++) {
		 var item=document.dk_frmopac[i]; // Does not work in FF
		 if (item.name) {
			if (item.name.substr(0,9)=='dk_annexe') item.checked = false
		 }
		}
		if (document.getElementById('dk_form_db_'+dbname).tagName.toLowerCase()=='option') 
			var desc = document.getElementById('dk_form_db_'+dbname).text
		else 
			var desc = document.getElementById('dk_form_db_'+dbname).innerHTML
		try {document.dk_frmopac.Keys3.value = ''} catch (e) {}
		try {document.getElementById("dk_header_annexe_select").innerHTML = desc} catch (e) {}
	}
	dk_main_form_reset(dbname);
}
function dk_main_form_reset(dbname) {
	
  try {dk_toggle("dk_new", dk_valid_new[dbname], "dk_restrict_use10")} catch (e) {};
  try {dk_toggle("dk_phonetic", dk_valid_phon[dbname], "dk_forcephonetic")} catch (e) {};
  try {dk_toggle("dk_plural", dk_valid_plur[dbname], "dk_forceplural")} catch (e) {};

  try {dk_update_menu("dk_use1", dk_valid_use[dbname])} catch (e) {};
  try {dk_update_menu("dk_sortkey", dk_valid_sort[dbname], "dk_opac15_sort")} catch (e) {};
  
	// Document Type
	try {document.getElementById('dk_keys2').disabled = (dk_db_def[dbname]!='T')} catch (e) {}
	try {dk_update_menu_nocopy("dk_keys2", dk_valid_doctype[dbname])} catch (e) {};
  dk_update_form_summary();
	
  var def_db = '';
  for (db in dk_db_name) {
	  if (dk_db_def[db]=="T") def_db = dk_db_name[db];
  }
  var def_phon = dk_valid_phon[def_db];
  var def_plur = dk_valid_plur[def_db];
  var cur_phon = dk_valid_phon[dbname];
  var cur_plur = dk_valid_plur[dbname];
  if (def_phon=='' && def_plur=='') {
	  var phonplur = document.getElementById("dkphonplur");		
	  phonplur.className = (cur_phon=='' && cur_plur=='') ? 'phonplur hide' : 'phonplur show';
  }	
  
}
function dk_main_form_annexe_click(pRemoveAll) {
	 // Annexes
	 var oText
	 try {oText = document.getElementById("dk_header_annexe_select") } catch (e) {}
	 var oKey = document.dk_frmopac.Keys3
	 if (!oKey) return;

	 var o = document.getElementById('dk_form_defaultdatabase')

		// Get the current selected database
		zCurrentDatabase = ''
		var radiogrp = document.dk_frmopac.database
		for (var i=0; i<radiogrp.length; i++) {
			if (radiogrp[i].checked) zCurrentDatabase = radiogrp[i].value
		}

	 o.checked = true;
	 var zUpdate_db = (o.value != zCurrentDatabase)
	 document.dk_frmopac.database.value = o.value
	 
	 if (zUpdate_db) dk_main_form_reset(o.value);


	 var text = '';
	 var keys = '';
	 var ztotal = 0;
	 var zchecked = 0;
	 for (var i=0;i<document.dk_frmopac.length; i++) {
		 var item=document.dk_frmopac[i]; // Does not work in FF
		 if (item.name) {
			if (item.name.substr(0,9)=='dk_annexe') {
				if (pRemoveAll) item.checked = false;
				var z = item.name.replace('[',' ').replace(']','');
				z = z.split(' ')
				z = z[1]
				ztotal++;
				var o = document.getElementById("dk_annexe_text_"+item.value)
				if (item.checked) {
					zchecked++;
					text += '; '+o.innerHTML;
					keys += ' '+item.value;
				}
				
			}
		 }
	 }
	 try {oText.innerHTML = text.substr(2) } catch (e) {};
	 oKey.value = keys.substr(1);

	 if ((ztotal>1) && ((zchecked==ztotal) || (zchecked==0)) ) 
	 	try {oText.innerHTML = document.getElementById('dk_all_annexe_description').innerHTML} catch (e) {};

   try {oText.title = oText.innerHTML} catch (e) {}
   dk_update_form_summary();

}
function dk_toggle(pId, pTest, pChkId) {
  switch (pTest) {
  case 'F':
    document.getElementById(pId).style.display='';
		if (pChkId) document.getElementById(pChkId).disabled = false
		break;
  case 'T':
    document.getElementById(pId).style.display='';
		if (pChkId) document.getElementById(pChkId).disabled = false
		if (pChkId) document.getElementById(pChkId).checked = true
    break;
  default:
		if (pChkId) document.getElementById(pChkId).disabled = true
    break;
  }
}

function dk_update_menu(pId, pList, pParentId) {
	zselect = document.getElementById(pId)
  zcopyselect = document.getElementById(pId+"_copy")
	
	if (pParentId) {
		if (!pList)  {
			zselect.disabled = true
			return
		} else {
			document.getElementById(pParentId).style.display=''
			zselect.disabled = false
		}
	}

	var defaultvalue = dk_opac15_getdefvalue(pList);
	if (zselect.options.length) {
    zselected = zselect.value;
	} else if (defaultvalue) {		
    zselected = defaultvalue;
  } else {
    zselected = zselect.value;
  }

	/* remove all options */
  if (!document.all) for (var i=0;i<zselect.options.length; i++) zselect.options[i]=null
  else do {zselect.options.remove(0)} while (zselect.options.length)
  
	zselect.innerHTML = '';
  /* Generate a new list */
	zList = ";"+pList.replace('*',"")+";";
  for (var i=0;i<zcopyselect.options.length; i++) {
		if ((zList.indexOf(";"+zcopyselect.options[i].value+";")!=-1) || (zcopyselect.options[i].value=="") || (zcopyselect.options[i].value==zcopyselect.options[i].text)) {
	  	zselect.options[zselect.options.length] = new Option(zcopyselect.options[i].text,zcopyselect.options[i].value);
      if (zcopyselect.options[i].value==zselected) {
				zselect.options[zselect.options.length-1].selected = true
			}
      zselect.options[zselect.options.length-1].defaultSelected =zcopyselect.options[i].defaultSelected
	  }
  }
	zselect.value=zselected;
	for (var i=0;i<zselect.options.length; i++) {
    if (zselect.options[i].value==zselected) zselect.options[i].selected = true
	}
}

function dk_opac15_getdefvalue(pList) {
	var value;
	var list = pList.split(";");
	for (var i=0;i<list.length;i++) {
		if (list[i].substr(0,1)=='*') return list[i].substr(1);
	}
}
function dk_update_menu_nocopy(pId, pList) {
	zselect = document.getElementById(pId)
	var value = dk_opac15_getdefvalue(pList);
//	if (value) 
		zselect.value = value;
}



function hideWindowsControls(pId) {
	var _bIE55 = ((typeof(document.body.contentEditable) != "undefined") && (document.all));
	var _bIE6 = ((typeof(document.compatMode) != "undefined") && (document.all));

	if (_bIE6 || _bIE55) {
		var o = document.getElementById(pId)
		ifr = document.getElementById(pId + '_iframe')
		if (!ifr) {
			var ifr = document.createElement('iframe')
			ifr.style.position = 'absolute'
			ifr.style.zIndex = 999
			ifr.id = pId + '_iframe'
			ifr.style.visibilty = 'hidden'
			o.parentNode.appendChild(ifr)
		}
		ifr.style.zIndex = 2;
		//ifr.style.visibilty = 'hidden'
		ifr.style.width = o.offsetWidth
		ifr.style.height = o.offsetHeight
		
//		alert('1: '+o.style.height+',2: '+o.style.width+',3: '+o.height+',4: '+o.width+',5: '+o.offsetHeight+',6: '+o.offsetWidth+',7: '+o.parentNode.style.height+',8: '+o.parentNode.height+',9: '+o.parentNode.offsetHeight)
//		alert(o.parentNode.outerHTML)
	}
}

