var arDoc = new Array();
var sPersistData="~Empty~";
var sPersistDataIndexes="~Empty~";
var sPersistDataBooks="~Empty~";
var sPersistDataBiblio="~Empty~";
var hWind = null;
var sDisplayKeyboard = "none";
var sFieldInFocus = "";

//Keep fields value. fire on unload event of a form.
function PersistArray(formName){
	var sData="";
	for(var i=0; i<formName.elements.length; i++){
		if(formName.elements[i].type == "text" || formName.elements[i].type == "hidden"){
			sData+=formName.elements[i].value + "#";
			formName.elements[i].value = "";
		}
		if(formName.elements[i].tagName == "SELECT"){
			sData += "SELECT" + formName.elements[i].id + "=" + formName.elements[i].selectedIndex + "#";
			formName.elements[i].selected = -1;
		}
		if(formName.elements[i].type == "checkbox"){
			sData += "CHECKBOX" + formName.elements[i].id + "=" + formName.elements[i].checked + "#";
			formName.elements[i].checked = false;
		}
		if(formName.elements[i].type == "radio"){
			sData += "RADIO" + formName.elements[i].id + "=" + formName.elements[i].checked + "#";
			formName.elements[i].checked = false;
		}
		if(formName.elements[i].type == "button")
			sData += formName.elements[i].value + "#";
	}

	return sData;
}

//Restore fields value. fire on load event of a form.
function RestoreArray(formName, sPersistData)
{
	if(sPersistData != "~Empty~")
	{
		collData=sPersistData.split("#");
		for(var i=0; i<collData.length - 1; i++)
		{
			if(collData[i].indexOf("SELECT") == -1)
				formName.elements[i].value=collData[i];
			if(collData[i].indexOf("SELECT") >= 0)
			{
				// Get the Combo box ID + Value
				var selectID = collData[i].substring(collData[i].indexOf("SELECT") + 6, collData[i].indexOf("="));
				var selectValue = collData[i].substring(collData[i].indexOf("=") + 1, collData[i].length);
				formName.elements(selectID).selectedIndex = selectValue;
			}	
			if(collData[i].indexOf("CHECKBOX") >= 0)
			{
				// Get the Check box Id + Value
				var selectName = collData[i].substring(collData[i].indexOf("CHECKBOX") + 8, collData[i].indexOf("="));
				var selectValue = collData[i].substring(collData[i].indexOf("=") + 1, collData[i].length);
				if (selectValue == "true")
					formName.elements(selectName).checked = true;
				else
				    formName.elements(selectName).checked = false;
			}
			if(collData[i].indexOf("RADIO") >= 0)
			{
				// Get the radio button Name + Value
				var selectName = collData[i].substring(collData[i].indexOf("RADIO") + 5, collData[i].indexOf("="));
				var selectValue = collData[i].substring(collData[i].indexOf("=") + 1, collData[i].length);
				if (selectValue == "true")
					formName.elements(selectName).checked = true;
			}
			
		}
	}
}

function checkMessages()
{
	var xmlhttp = XmlHttp.createNew();
	xmlhttp.open("GET", "broadcastMessage.aspx", false);
	XmlHttp.setOnloadHandler(xmlhttp, function()
	{
		var root = xmlhttp.responseXML.documentElement;
		var tagName = (root == null) ? "" : root.tagName;
	
		if (tagName == "message")
			alert(root.text);
		else if (tagName == "link")
			top.window.location.href = root.text;

		// Check every 5 minutes
		setTimeout(checkMessages, 5 * 60 * 1000);
	});
	
	xmlhttp.send("");
}
checkMessages();

function setUserName(userName)
{
	var loginHNDText = document.getElementById("txtLogin");

	if ((userName == null) || (userName == ""))
	{
		document.getElementById("userNameDisplayed").innerText = "anonymous";
		document.getElementById("logged").style.display = "none";
		loginHNDText.innerText = "Login";
	}
	else {
		document.getElementById("userNameDisplayed").innerText = userName;
		document.getElementById("logged").style.display = "inline";
		loginHNDText.innerText = "Logout";
	}
}

function clearSearch()
{
	var arr = new Array("FullText");
	for (var i=0; i<arr.length; i++)
	{
		var oElement = document.getElementById(arr[i]);
		switch(oElement.type.toLowerCase())
		{
			case "select-one":
				oElement.options[0].selected = true;
				break;
			case "text":
				oElement.value = "";
				break;
		}
	}

}

function sendQuery()
{
	var term = "";
	var arr = new Array("FullText");
	for (var i=0; i<arr.length; i++)
	{
		var sVal = document.getElementById(arr[i]).value;
		if(sVal)
			term += (term == "") ? arr[i] + ":" + sVal  : ";" + arr[i] + ":" + sVal ;
	}
	
	if (term.length == 0) {
		alert("Please enter search term");
		FullText.focus();
	}
	else {
		top.generalSearch(term);
	}
}

function checkKeyPage()
{
	var keyCode = event.keyCode;
	if(keyCode == 13) return;

	if((keyCode < 48) || (keyCode > 57))
	{
		event.returnValue = "";
		event.cancelBubble = true;
		alert(MSG_INVALID_NUMERIC);
	}
}

function showFocused(oFocused)
{
	var ar = [];
	for (var o = oFocused; o != null; o = o.parent)
		ar.unshift(o.value);
	//document.getElementById("collectionPath").innerText = ar.join(" / ");
}

function homePage(sMenu)
{
	sMenu = (sMenu) ? "?menu=" + sMenu : "";	
	top.getFrame('titles').location.replace('welcome_en-US.aspx' + sMenu);
}

function abbreviationPage()
{
	if (hWind != null && !hWind.closed)
	{
		hWind.focus();
		return;
	}

	hWind = window.open("abbreviations.aspx", "_blank", "height=650, width=700, menubar=no, status=no, toolbar=no, scrollbars=no");
	hWind.creator = self;
}

function showHelp(evt)
{
	evt = Compat.getEvent(evt);
	var elem = evt.target;
	var helpID = elem.getAttribute("helpID");
	if (helpID == null)
		helpID = elem.parentNode.getAttribute("helpID");
	if (window != top)
		top.showHelp(helpID);
}

function changeBg(oElement, sImg)
{
	oElement.style.backgroundImage = "url('" + sImg + "')";
}

function initTopbar()
{
	Compat.addKeyHandler(document.body, "keydown", 13, sendQuery);			// call sendQuery() when Enter is pressed
	var userName = document.getElementById("userName").value;
	top.setUserName((userName.length) ? userName : null);
}

function showBook()
{
	if (biblioID != "")
		top.generalSearch("LinkBiblio:" + biblioID);
	else if(otzarID != "")
		top.generalSearch("LinkOtzar:" + otzarID);
}

function openWindow(winURL,winFrame)
{
	if (winFrame == "new")
		window.open(winURL);
	if (winFrame == "self")
		parent.location.href = winURL;
		
}

function SetCookie(sName, sValue, bTemp)
{	
	date = new Date();
	path = "/";
	if(bTemp)
		document.cookie = sName + "=" + escape(sValue) + ";path=" + path;
	else
		document.cookie = sName + "=" + escape(sValue) + "; expires=Fri, 31 Dec 3000 23:59:59 GMT;path=" + path;
}

function GetCookie(sName)
{
  //cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    //a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0])
      return unescape(aCrumb[1]);
  }
  //a cookie with the requested name does not exist
  return null;
}

function setCulture(sSrc)
{
	if(sSrc.match(/_(.+?)\.gif$/i))
	{
		var culture = RegExp.$1; 
		culture = (culture == "he") ? "en-US" : "he";
		if(curCulture == culture) return;
		SetCookie("langculture", culture);
		top.location.href = top.location.href;
	}
}