var xDocLoc = document.location.host;
var aBaseRef = "http://unesdoc.unesco.org";
var aDom = "";
//CML
var SearchId = 0;
var FieldsFilled = false;

if (xDocLoc.match(/^unesdoc.unesco.org$/i)) {
  aBaseRef = "";
}else{
  if (!xDocLoc.match(/unesco.org$/i)) {
    if (xDocLoc.match(/unesco$/i)) {
      xDocLoc += ".org";
    }else if (xDocLoc.match(/^ulis1*$/i)){
      xDocLoc += ".hq.int.unesco.org";
    }else{
      xDocLoc += ".unesco.org";
    }
    //alert(document.location.pathname);
    document.location = "http://" + xDocLoc + document.location.pathname;
    document.close;
  }else{
    aDom = document.domain = "unesco.org";
  }
}



function formOnLoad() {
	// manage Material Type checkboxes
	var eMTA = document.getElementById('mtA');
	if (eMTA) displayMT(eMTA);

	// manage branches
	var branchTab = getBranchTab();
	for (b in branchTab) {
		if (branchTab[b] == '') continue;
		branchOpen(branchTab[b]);
	}
	
	// focus
	var eFocus = document.getElementsByName('text');
	if (eFocus == undefined) eFocus = document.getElementsByName('q');
	if (eFocus != undefined && eFocus.length > 0) eFocus[0].focus();
	
	if (!FieldsFilled) {
		setFields();
	}
	
}

function addLoadListener(func) {
	if (window.addEventListener) {
		window.addEventListener("load", func, false);
	} else if (document.addEventListener) {
		document.addEventListener("load", func, false);
	} else if (window.attachEvent) {
		window.attachEvent("onload", func);
	} else if (typeof window.onload != "function") {
		window.onload = func;
	} else {
		var oldonload = window.onload;
		window.onload = function() {
			oldonload();
			func();
		};
	}
}

addLoadListener(formOnLoad);

function getBranchTab() {
	var branchCookie = readCookie('BranchOpen');
	//window.status = 'branchCookie=' + branchCookie;
	if (branchCookie == '') return;
	return branchCookie.split(/ /);
}

function open_window(url) {
  index = window.open(url, "Index", 'toolbar=0,location=1,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=520,height=530');
  if (index.opener == null)
    index.opener = window;
}

function get_index_old(form_field, table_field, title) {
	open_window(aBaseRef + '/iconfex.new/asp/index.asp?byWord=1&rech=' + encodeURIComponent(form_field.value)
	+ '&Index=' + table_field
	+ '&Display=' + encodeURIComponent(title)
	+ '&Field=' + encodeURIComponent(form_field.name)
	+ '&Form=f1&do=' + aDom
	+ '&wa=UNESBIB'
	);
}

function get_index(form_field, table_field, title) {
	get_index2(form_field, table_field, title, 1);
}

function get_index2(form_field, table_field, title, byWord) {
	var f = document.getElementById("f_index");
	f.byWord.value = byWord;
	f.Rech.value = form_field.value;
	f.Index.value = table_field;
	f.Display.value = title;
	f.Field.value = form_field.name;
	f.dom.value = aDom;
	if (!xDocLoc.match(/unesdocdev/i))
		f.action = aBaseRef + '/iconfex/asp/index.asp';
	f.submit();
}

function displayMT(f) {
	if (!f) return;
	if (f.checked) {
		document.getElementById("div_mt").style.display = "none";
	} else {
		document.getElementById("div_mt").style.display = "inline";
	}
}

function doMT() {
	var ele, v_mt, col, i;
	v_mt = '';
	if (!document.getElementById("mtA").checked) {
		col = document.getElementsByName("mtX");
		for (i = 0; i< col.length; i++) {
			ele = col[i];
			if (ele.checked) v_mt = v_mt + ',' + ele.value;
		}
	}
	v_mt = v_mt.substr(1);
	document.getElementById("hid_mt").value = v_mt;
}

function surfto(form) {
 var myindex=form.select1.selectedIndex
 if (form.select1.options[myindex].value != "0") {
 location=form.select1.options[myindex].value;}}

function openWindow(myLink,windowName)
{
if(! window.focus)return;
var myWin=window.open("",windowName,"height=300,width=400,dependent=yes,scrollbars=yes,resizable=yes");
myWin.focus();
myLink.target=windowName;
}

function prepare(f) {
	if (f.se.selectedIndex > 0) f.by.value = '14';
}

function branchOpen(bName)
{
	var a_ele = document.getElementById('a_' + bName);
	if (!a_ele) return;
	var img_ele = document.getElementById('img_' + bName);
	var div_ele = document.getElementById('div_' + bName);
	var branchTab = getBranchTab();
	
	if (div_ele.style.display == 'none')
	{
		div_ele.style.display = '';
		a_ele.title = 'Click to close';
		img_ele.title = 'Click to close';
		img_ele.src = 'http://unesdoc.unesco.org/img/minus.png';
		var bAlready = false;
		for (i in branchTab) {
			if (branchTab[i] == bName) {
				bAlready = true;
				break;
			}
		}
		if (!bAlready) {
			if (branchTab) {
				branchTab.push(bName);
			} else {
				branchTab = new Array(bName);
			}
		}
		createCookie('BranchOpen', branchTab.join(' '), 0);
	}
	else
	{
		div_ele.style.display = 'none';
		a_ele.title = 'Click to open';
		img_ele.title = 'Click to open';
		img_ele.src = 'http://unesdoc.unesco.org/img/plus.png';
		var bOther = false;
		var iThis = -1;
		for (i in branchTab) {
			if (branchTab[i] == bName) {
				iThis = i;
			} else {
				bOther = true;
			}
		}
		if (iThis >= 0) {
			if (bOther) {
				createCookie('BranchOpen', branchTab.splice(iThis, 1), 0);
			} else {
				eraseCookie('BranchOpen');
			}
		}
	}
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return '';
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

//CML : Function to pre-fill fields when clicking on "back to search"
function getSearchId() {
	var CurUrl = window.location.href;
	var sId = 0;
	if ( CurUrl.indexOf("#") > -1 ){
		if (isNumeric(CurUrl.substr(CurUrl.indexOf("#")+1))) {
			sId = CurUrl.substr(CurUrl.indexOf("#")+1);
		}
	}
	return sId;
}

function getSearchParams(sId) {
	//get params from database
	if (window.XMLHttpRequest) {
		//Firefox
		xr = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		// IE
		xr = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		SearchId = 0;
		return;
	}

	var request = '/ulis/cgi-bin/gethist.pl?mode=1&IdSearch=' + sId;
	xr.open('GET', request, false);
	xr.send('');
	
	//alert(xr.responseText);
	
	return xr.responseText;
	
}

function setFields() {

	
	SearchId = getSearchId();
	if (SearchId == 0) {
		return;
	}
	
	var params = getSearchParams(SearchId);

	var tabParams = params.split("\t");
	for(var i=0;i < tabParams.length - 1;i++) {
		var paramName = tabParams[i].substr(0,tabParams[i].indexOf("="));
		var paramValue = tabParams[i].substr(tabParams[i].indexOf("=")+1);
		FillField(paramName,paramValue);
	}
	
	FieldsFilled = true;
}

function FillField(Name,Value) {

	//alert("FillField(" + Name + "," + Value + ")");

	// get form
	var forms=document.getElementsByTagName("form");
	var f;
	for (var i=0; i<forms.length;i++)
	{
		if (forms[i].name == 'f1') {
			f = forms[i];
			break;
		}
	}
	if (f == undefined) return;
	
	for (i = 0; i < f.elements.length; i++)
	{

		e = f.elements[i];
		if (e.name.toUpperCase() == Name.toUpperCase() || ( (e.name=="mtA" || e.name=="mtX") && Name.toUpperCase()=="MT") ) {
			//fill the field (method depending on field type)
			if (e.type == 'text') {
				e.value=Value;
			} else if (e.type == 'radio') {			
				e.checked = false;
				if(e.value.toUpperCase() == Value.toUpperCase()) {
					e.checked = true;
				}
			} else if (e.type == 'checkbox') {
				if (e.value.toUpperCase() == Value.toUpperCase()) {
					e.checked = true;
				}
				//specific case with MT
				if (Name.toUpperCase() == "MT") {
					if (e.name=="mtA" && ("," + Value + ",").indexOf(",102,")>=0) {
						e.checked = true;
					} else {
						e.checked = false;
					}
					if (e.name=="mtX" && ("," + Value + ",").indexOf("," + e.value + ",")>=0) {
						e.checked = true;
					} else {
						e.checked = false;
					}
					displayMT(e);					
				}
			} else if (e.type == 'textarea') {
				e.value=Value;				
			} else if (e.type == 'select-one') {
				for(var j = 0; j < e.length ; j++) {
					e[j].selected = false;
					if(e[j].value.toUpperCase() == Value.toUpperCase()) {
						e[j].selected = true;
					}
				}
			} else if (e.type == 'select-multiple') {
				for(var j = 0; j < e.length ; j++) {
					e[j].selected = false;
					if(e[j].value.toUpperCase() == Value.toUpperCase()) {
						e[j].selected = true;
					}
				}
			} else if (e.type == 'hidden') {
				e.value=Value;
			} else {
				alert(Name + "=>" + e.type);
				
			}
			
		}
		
	}
}

function isNumeric(sText){
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++){
		Char = sText.charAt(i);
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
		}
	}
	return IsNumber;
} 
