onerror = error_handler;
document.onkeypress=switchKeyboard;
document.onkeydown=key;

var DEBUG = false;

var DBL_DEBUG = 1;
var DBL_ERROR = 2;
var DBL_INFO = 3;
var DEBUGLEVEL = DBL_ERROR;

/*
  *	Constants defining the type of browser and such
  */
var TTM_HAS_DOM_IMPLEMENTATION = document.implementation && true;
var TTM_HAS_DOM_CREATE_DOCUMENT = TTM_HAS_DOM_IMPLEMENTATION && document.implementation.createDocument;
var TTM_HAS_DOM_FEATURE = TTM_HAS_DOM_IMPLEMENTATION && document.implementation.hasFeature;
var TTM_IS_MOZ = TTM_HAS_DOM_CREATE_DOCUMENT && TTM_HAS_DOM_FEATURE;
var TTM_IS_SAFARI = navigator.userAgent.toLowerCase().indexOf("safari") != -1 || navigator.userAgent.toLowerCase().indexOf("konqueror") != -1;
var TTM_IS_SAFARI_OLD = TTM_IS_SAFARI && parseInt((navigator.userAgent.match(/AppleWebKit\/(\d+)/)||{})[1]) < 420;
var TTM_IS_IE = document.all && window.ActiveXObject && navigator.userAgent.toLowerCase().indexOf("msie") > -1  && navigator.userAgent.toLowerCase().indexOf("opera") == -1;
var TTM_IS_OPERA = navigator.userAgent.toLowerCase().indexOf("opera") != -1;

var errorMessage = "";
var lstBuffer = new Array();
var objHighlightTab;
var strObjectID;
var strRequestedType;
var strPostVariables;
var blFromHistory;
var xmlHTTP;

if (DEBUG && (DEBUGLEVEL==DBL_DEBUG)) {
	alert('user-agent has DOM implementation: ' + TTM_HAS_DOM_IMPLEMENTATION + '\r\n' +
			'user-agent can create DOM documents: ' + TTM_HAS_DOM_CREATE_DOCUMENT + '\r\n' +
			'user-agent has DOM features: ' + TTM_HAS_DOM_FEATURE + '\r\n' +
			'user-agent is Mozilla/Firefox: ' + TTM_IS_MOZ + '\r\n' +
			'user-agent is Safari: ' + TTM_IS_SAFARI + '\r\n' +
			'user-agent is Safari (old version): ' + TTM_IS_SAFARI_OLD + '\r\n' +
			'user-agent is Internet Explorer: ' + TTM_IS_IE + '\r\n' +
			'user-agent is Opera: ' + TTM_IS_OPERA);
}

/* -- Prototype function declarations ---- */
String.prototype.endsWith = function (str) {return (this.match(str+"$")==str)}

/* -- Functions for site startup and initialization ---- */
function initialize() {
	var pageAttributes = document.getElementById("ttm_catalog_page").attributes;
	var language = pageAttributes.getNamedItem("tag").value;
	var visitedPages = document.frmHistory.visited_pages;
	var newOption = new Option ("frmWelcomePage","process_request('show_window','request=frmWelcomePage.show','',true)");
	var selectedIndex = visitedPages.selectedIndex + 1;
				
	//addEvent(window,"unload",unload_handler);
	
	resize();
	document.getElementById("language_icon_" + language).style.display="none";
	//process_request("show_window","request=frmWelcomePage.show");
	
	//	Resize the welcome page
	document.getElementById('frmWelcomePage_content').style.height=(document.body.clientHeight - 32) + 'px';
	document.getElementById('frmWelcomePage_content').style.width=(document.body.clientWidth - 220) + 'px';
	document.getElementById('frmWelcomePage_search').style.width=(document.body.clientWidth - 400) + 'px';
	document.getElementById('frmWelcomePage_current_information').style.width=(document.body.clientWidth - 400) + 'px';
	document.getElementById('ttm_disclaimer').style.width=(document.body.clientWidth - 262) + 'px';
	if(document.body.clientWidth<=1024) {
		document.getElementById('frmWelcomePage_news').style.width=((document.body.clientWidth - 420)/2) + 'px';
		document.getElementById('frmWelcomePage_marketplace').style.width=((document.body.clientWidth - 420)/2) + 'px';
		document.getElementById('frmWelcomePage_forum').style.width=((document.body.clientWidth - 420)/2) + 'px';
	}
	
	//	Set welcome page in history list
	visitedPages[selectedIndex] = newOption;
	visitedPages.selectedIndex = selectedIndex;
	//document.getElementById('frmWelcomePage_info').style.width=((document.body.clientWidth - 420)/2) + 'px';};
}

function resize() {
	document.getElementById('ttm_container').style.height = document.body.clientHeight + 'px';
	document.getElementById('ttm_container').style.width = document.body.clientWidth + 'px';
	document.getElementById('ttm_catalog_page').style.height = document.body.clientHeight + 'px';
	document.getElementById('ttm_catalog_page').style.width = document.body.clientWidth + 'px';
	//document.getElementById('ttm_personal_page').style.height = document.body.clientHeight + 'px';
	//document.getElementById('ttm_personal_page').style.width = document.body.clientWidth + 'px';
}
/* -- end ---- */

function change_language (Language) {
	var objLanguageIconNL = document.getElementById("language_icon_nl_NL");
	var objLanguageIconFR = document.getElementById("language_icon_fr_FR");
	var objLanguageIconEN = document.getElementById("language_icon_en_GB");
	var objLanguageIconDE = document.getElementById("language_icon_ge_GE");
	
	var objLanguageIcon = document.getElementById("language_icon_" + Language);
	
	objLanguageIconNL.style.display = "inline";
	objLanguageIconFR.style.display = "inline";
	objLanguageIconEN.style.display = "inline";
	objLanguageIconDE.style.display = "inline";
	objLanguageIcon.style.display = "none";
	
	process_request("update","request=page.change_language&language=" + Language);
}

function acceptISBN(e) {
	var keynum;
	var keychar;
	var patt = new RegExp("[0-9xX]");

	if(window.event) {// IE 
		keynum = e.keyCode;
	} else if(e.which) {// Netscape/Firefox/Opera 
		keynum = e.which;
	}
	
	keychar = String.fromCharCode(keynum);
	return patt.test(keychar);
}

function noNumbers(e) {
	var keynum;
	var keychar;
	var numcheck;

	if(window.event) {// IE 
		keynum = e.keyCode;
	} else if(e.which) {// Netscape/Firefox/Opera 
		keynum = e.which;
	}
	
	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;
	return !numcheck.test(keychar);
}

function noCharacters(e) {
	var keynum;
	var keychar;
	var numcheck;

	if(window.event) {// IE 
		keynum = e.keyCode;
	} else if(e.which) {// Netscape/Firefox/Opera 
		keynum = e.which;
	}
	
	keychar = String.fromCharCode(keynum);
	numcheck = /\D/;
	return !numcheck.test(keychar);
}

function error_handler(message,url,line) {
	if (DEBUG && (DEBUGLEVEL==DBL_ERROR || DEBUGLEVEL==DBL_DEBUG)) {
		txt="There was an error on this page.\n\n";
		txt+="Error: " + message + "\n";
		txt+="URL: " + url + "\n";
		txt+="Line: " + line + "\n\n";
		txt+="Click OK to continue.\n\n";
		alert(txt);
	}
	
	return true;
}

function unload_handler() {
	//process_request("silent_update","request=visitor_departing");
	return true;
}

/*
function change_tab(tabName) {
	var objHighlightTab = document.getElementById(tabName);
	var objCatalogTab = document.getElementById("tabCatalog");
	var objPersonalTab = document.getElementById("tabPersonal");
	var objCatalogContainer = document.getElementById("ttm_catalog_page");
	var objPersonalContainer = document.getElementById("ttm_personal_page");
	
	objCatalogTab.className = "inactive";
	objPersonalTab.className = "inactive";
	
	objHighlightTab.className = "";
	objHighlightTab.onmouseout = "";
	
	if (tabName == "tabCatalog") {
		objCatalogContainer.style.display = "block";
		objPersonalContainer.style.display = "none";
	} else if (tabName == "tabPersonal") {
		objPersonalContainer.style.display = "block";
		objCatalogContainer.style.display = "none";
	}
}
*/

/*
function highlight_tab(tabName) {
	objHighlightTab = document.getElementById(tabName);
	
	objHighlightTab.className="";
	setTimeout("objHighlightTab.className='inactive'",300);
	setTimeout("objHighlightTab.className=''",600);
	setTimeout("objHighlightTab.className='inactive'",900);
	setTimeout("objHighlightTab.className=''",1200);
	setTimeout("objHighlightTab.className='inactive'",1500);
	setTimeout("objHighlightTab.className=''",1800);
	setTimeout("objHighlightTab.className='inactive'",2100);
	
	if (tabName == "tabPersonal") {
		setTimeout("if (document.getElementById('ttm_personal_page').style.display == 'block') objHighlightTab.className=''",2200);
	}
}
*/

function hide_object(id)
{
	var objVisibleObject = document.getElementById(String(id));
	
	objVisibleObject.style.display="none";
}

function show_object(id)
{
	var objVisibleObject = document.getElementById(String(id));
	
	objVisibleObject.style.display="inline";
	
	setTimeout("hide_object('balloon_tip')",3000);
}

function get_xml_http_object()
{  
	xmlHTTP = null;
  
	try  {    
		// Firefox, Opera 8.0+, Safari    
		xmlHTTP = new XMLHttpRequest();    
	} catch (e)	{    
		// Internet Explorer    
		try {      
			xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP");    			
		} catch (e) {      
			try {        
				xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");        
			} catch (e) {        
				alert("Your browser does not support AJAX!");        
				return false;        
			}
		}
	}
    
	return xmlHTTP;
}

function addEvent(obj,type,fn) {
	if (obj.addEventListener) {
		obj.addEventListener(type,fn,false);
		return true;
	} else if (obj.attachEvent) {
		obj['e'+type+fn] = fn;
		obj[type+fn] = function() { obj['e'+type+fn]( window.event );}
		var r = obj.attachEvent('on'+type, obj[type+fn]);
		return r;
	} else {
		obj['on'+type] = fn;
		return true;
	}
}

function jstrprintf() 
{
  len = arguments.length;

  if (len == 0) { return; }
  if (len == 1) { return arguments[0]; }
    
  var result;
  var regexstr;
  var replstr;
  var formatstr;
  var re;
    
  result = "";
  regexstr = "";
  replstr = "";
  formatstr = arguments[0];
    
  for (var i=1; i<arguments.length; i++) 
	{
    replstr += String(i+100) + arguments[i]  + String(i + 100);
    regexstr += String(i+100) + "(.*)" + String(i+100);
  }
  
	re = new RegExp(regexstr);
  var result;
  result = replstr.replace(re, formatstr);
  return result;
}

function process_request(RequestType,PostVariables, ObjectID, fromHistory) {
	var visitedPages = document.frmHistory.visited_pages;
	var backButton = document.frmHistory.history_back;
	var nextButton = document.frmHistory.history_next;
	
	try {
		strRequestedType = RequestType;
		strPostVariables = PostVariables;
		strObjectID = ObjectID;
		pageName=PostVariables;
		
		get_xml_http_object();
		
		if (DEBUG && (DEBUGLEVEL==DBL_INFO || DEBUGLEVEL==DBL_ERROR || DEBUGLEVEL==DBL_DEBUG)) {
			alert("Request-type: "+RequestType+" - Post variables: "+PostVariables+" - ObjectID: "+ObjectID);
		}
		
		/* -- Add the visited page to the history list ---- */
		if (fromHistory) {
			blFromHistory = true;
			var selectedIndex = visitedPages.selectedIndex;
			var lastIndex = visitedPages.length - 1;
			
			if (selectedIndex == 1 && lastIndex == 1) {
				backButton.src = "./media/system/icons/history_back_disabled.gif";
				backButton.style.cursor = "default";
				backButton.onclick = "";
				
				nextButton.src = "./media/system/icons/history_next_disabled.gif";
				nextButton.style.cursor = "default";
				nextButton.onclick = "";
			} else if (selectedIndex == 1 && lastIndex > 1) {
				backButton.src = "./media/system/icons/history_back_disabled.gif";
				backButton.style.cursor = "default";
				backButton.onclick = "";
				
				nextButton.src = "./media/system/icons/history_next_enabled.gif";
				nextButton.style.cursor = "pointer";
				nextButton.onclick = function() {visitedPages.selectedIndex=visitedPages.selectedIndex+1;visitedPages.onchange();}
			} else if (selectedIndex == lastIndex && lastIndex > 1) {
				backButton.src = "./media/system/icons/history_back_enabled.gif";
				backButton.style.cursor = "pointer";
				backButton.onclick = function() {visitedPages.selectedIndex=visitedPages.selectedIndex-1;visitedPages.onchange();}
				
				nextButton.src = "./media/system/icons/history_next_disabled.gif";
				nextButton.style.cursor = "default";
				nextButton.onclick = "";
			} else {
				backButton.src = "./media/system/icons/history_back_enabled.gif";
				backButton.style.cursor = "pointer";
				backButton.onclick = function() {visitedPages.selectedIndex=visitedPages.selectedIndex-1;visitedPages.onchange();}
				
				nextButton.src = "./media/system/icons/history_next_enabled.gif";
				nextButton.style.cursor = "pointer";
				nextButton.onclick = function() {visitedPages.selectedIndex=visitedPages.selectedIndex+1;visitedPages.onchange();}
			}
		} else {
			blFromHistory = false;
			if (pageName != "" && 1==0) {
				var lastIndex = visitedPages.length;
				var selectedIndex = visitedPages.selectedIndex + 1;
				var newOption = new Option (pageName,"process_request('"+RequestType+"','"+PostVariables+"','"+ObjectID+"',true)");
				
				/*-- Remove history pages after selected index ----*/
				for (i=lastIndex-1;i>=selectedIndex;i--) {
					visitedPages.remove(i);
				}
				
				nextButton.src = "./media/system/icons/history_next_disabled.gif";
				nextButton.style.cursor = "default";
				nextButton.onclick = "";
				
				visitedPages[selectedIndex] = newOption;
				visitedPages.selectedIndex = selectedIndex;
				
				if (selectedIndex > 1) {
					document.frmHistory.history_back.src = "./media/system/icons/history_back_enabled.gif";
					backButton.style.cursor = "pointer";
					backButton.onclick = function() {visitedPages.selectedIndex=visitedPages.selectedIndex-1;visitedPages.onchange();}
				}
			}
		}
		
		if (document.getElementById("ttm_catalog_page").style.display == "block") {
			page = "&page=catalog";
		} else if (document.getElementById("ttm_personal_page").style.display == "block") {
			page = "&page=personal";
		}
		
		if (xmlHTTP) 
		{
			var url = "./libraries/request_processor.php?sid=" + Math.random() + page;
			
			if (PostVariables != null)
			{
				if (RequestType == "show_window") {
					//PostVariables += "&current_request=process_request('"+RequestType+"','"+PostVariables+"')";
					PostVariables += "&current_request="+PostVariables;
				}
				
				xmlHTTP.onreadystatechange = state_changed;
				xmlHTTP.open("POST", url, true);
				xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				//xmlHTTP.setRequestHeader("Content-length", PostVariables.length);
				//xmlHTTP.setRequestHeader("Connection", "close");
				xmlHTTP.send(PostVariables);
			}
			else
			{
				xmlHTTP.onreadystatechange = state_changed;
				xmlHTTP.open("POST", url, true);
				xmlHTTP.send(null);
			}
		}
	} catch (e) {
		if (DEBUG && (DEBUGLEVEL==DBL_ERROR || DEBUGLEVEL==DBL_DEBUG)) {
			alert(e.description);
		}
	}
}

function process_response(ResponseText)
{
	try {
		if (DEBUG && (DEBUGLEVEL==DBL_INFO || DEBUGLEVEL==DBL_ERROR || DEBUGLEVEL==DBL_DEBUG)) {
			alert(ResponseText);
		}
		
		var blExecuteCommands = false;
		
		if (ResponseText.indexOf("<~") != -1 && ResponseText.indexOf("~>") != -1)
		{
			strResponseText = jstrprintf(ResponseText);
			
			strExecuteCommands = strResponseText.split("<~")[1].split("~>")[0];
			//strRetrievedContent = jstrprintf(ResponseText).split("<~")[1].split("~>")[1];
			strRetrievedContent = strResponseText.replace("<~"+strExecuteCommands+"~>","");
			blExecuteCommands = true;
		}
		else
		{
			strRetrievedContent = jstrprintf(ResponseText);
		}

		if (document.getElementById("ttm_catalog_page").style.display == "block") {
			var page = "catalog";
		} else if (document.getElementById("ttm_personal_page").style.display == "block") {
			var page = "personal";
		}
		
		/*
		  *	Display the responseText according to the requested type
		  */
		if (strRequestedType == "load_list") {
			document.getElementById("catalog_serie_list").innerHTML = strRetrievedContent;
		} else if (strRequestedType == "load_member_list") {
			document.getElementById("personal_item_details").innerHTML = strRetrievedContent;
		} else if (strRequestedType == "load_menu") {
			document.getElementById("ttm_navigation").innerHTML = strRetrievedContent;
		} else if (strRequestedType == "show_window") {
			/*-- Show page ----*/
			if (page == "catalog") {
				document.getElementById("ttm_catalog_page").innerHTML = strRetrievedContent;
			} else if (page == "personal") {
				document.getElementById("ttm_personal_page").innerHTML = strRetrievedContent;
			}
			
			/*-- Add this window to the history list ---- */
			if (!blFromHistory) {
				var visitedPages = document.frmHistory.visited_pages;
				var backButton = document.frmHistory.history_back;
				var nextButton = document.frmHistory.history_next;
				var lastIndex = visitedPages.length;
				var selectedIndex = visitedPages.selectedIndex + 1;
				
				if (document.getElementById("active_page") != null && document.getElementById("active_page") != "") {
					var pageName = document.getElementById("active_page").attributes.getNamedItem("name").value;
				} else {
					var pageName = strPostVariables;
				}
				
				if (visitedPages[lastIndex-1].text != pageName) {
					var newOption = new Option (pageName,"process_request('"+strRequestedType+"','"+strPostVariables+"','"+strObjectID+"',true)");
					
					/*-- Remove history pages after selected index ----*/
					for (i=lastIndex-1;i>=selectedIndex;i--) {
						visitedPages.remove(i);
					}
					
					nextButton.src = "./media/system/icons/history_next_disabled.gif";
					nextButton.style.cursor = "default";
					nextButton.onclick = "";
					
					visitedPages[selectedIndex] = newOption;
					visitedPages.selectedIndex = selectedIndex;
					
					if (selectedIndex > 1) {
						document.frmHistory.history_back.src = "./media/system/icons/history_back_enabled.gif";
						backButton.style.cursor = "pointer";
						backButton.onclick = function() {visitedPages.selectedIndex=visitedPages.selectedIndex-1;visitedPages.onchange();}
					}
				}
			}
		} else if (strRequestedType == "show_top_window") {
			var objContentDiv = document.getElementById("top_window");
			
			if (objContentDiv != null) {
				if (page == "catalog") {
					var objContentContainer = document.getElementById("ttm_catalog_page");
				} else if (page == "personal") {
					var objContentContainer = document.getElementById("ttm_personal_page");
				}
				objContentContainer.parentNode.removeChild(objContentDiv);
			}
			
			var container = document.createElement("div");
			container.id = "top_window";
			container.style.backgroundColor = "transparent"; //"#faf0e6"; //"#f5fafa";
			container.style.display = "block";
			container.style.marginLeft = "-330px";
			container.style.marginTop = "-250px";
			container.style.padding = "6px 6px 6px 6px";
			container.style.position = "absolute";
			container.style.left = "50%";
			container.style.top = "50%";
			container.style.width = "660px";
			container.style.zIndex = "1000000";
			
			var container_title = document.createElement("div");
			container_title.style.background = "#cae8ea url('./media/system/images/bg_header.jpg') no-repeat";
			//container_title.style.border = "1px #c1dad7 solid";
			container_title.style.borderBottom = "1px #555555 solid"; //"1px #c1dad7 solid";
			container_title.style.borderLeft = "1px #006699 solid";
			container_title.style.borderRight = "2px #333333 solid";
			container_title.style.borderTop = "1px #006699 solid";
			container_title.style.display = "block";
			container_title.style.fontWeight = "bold";
			container_title.style.height = "14px";
			container_title.style.padding = "2px 4px 2px 4px";
			
			var container_content = document.createElement("div");
			container_content.style.backgroundColor = "#faf0e6";
			container_content.style.borderBottom = "2px #333333 solid"; //"1px #c1dad7 solid";
			//container_content.style.borderLeft = "1px #c1dad7 solid";
			container_content.style.borderLeft = "1px #006699 solid";
			container_content.style.borderRight = "2px #333333 solid";
			container_content.style.display = "block";
			container_content.style.padding = "2px 4px 2px 4px";
			container_content.innerHTML = strRetrievedContent;
			
			var close = document.createElement("span")
			close.id = "close_top_window";
			close.style.cursor = "pointer";
			close.style.position = "absolute";
			close.style.right = "11px";
			close.innerHTML = "<img alt=\"sluit\" src=\"./media/system/icons/item_delete.gif\" style=\"height:14px;width:14px;\">";
			
			close.onclick = function() {
				var objContentDiv = document.getElementById("top_window");
			
				if (objContentDiv != null) {
					if (page == "catalog") {
						var objContentContainer = document.getElementById("ttm_catalog_page");
					} else if (page == "personal") {
						var objContentContainer = document.getElementById("ttm_personal_page");
					}
					objContentContainer.parentNode.removeChild(objContentDiv);
				}
				document.getElementById("progress_cloak").style.display = "none";
			}
			
			container_title.appendChild(close);
			container.appendChild(container_title);
			container.appendChild(container_content);
			
			document.getElementById("progress_cloak").style.display = "block";
			if (page == "catalog") {
				document.getElementById("ttm_catalog_page").parentNode.appendChild(container);
			} else if (page == "personal") {
				document.getElementById("ttm_personal_page").parentNode.appendChild(container);
			}
		}	else if (strRequestedType == "view_item") {
			//document.getElementById("frmViewCollection_detail").innerHTML = strRetrievedContent;
			document.getElementById("item_details").innerHTML = strRetrievedContent;
			document.getElementById("catalog_item_details").scrollTop = 0;
		}	else if (strRequestedType == "view_member_item") {
			//document.getElementById("category_list").innerHTML = strRetrievedContent;
			document.getElementById("selected_item").innerHTML = strRetrievedContent;
		}	else if (strRequestedType == "view_member_item_details") {
			document.getElementById("category_details").innerHTML = strRetrievedContent;
		} else if (strRequestedType == "update" || strRequestedType == "silent_update") {
			if (strObjectID != null) {
				var objUpdateElement = document.getElementById(strObjectID);
				
				if (objUpdateElement != null) {
					objUpdateElement.innerHTML = strRetrievedContent;
				} else {
					process_request("show_top_window","request=message.error_update");
				}
			}
			
			/*-- Add this window to the history list ---- */
			if (!blFromHistory && strPostVariables.indexOf("request=frmSearch.search") != -1) {
				var visitedPages = document.frmHistory.visited_pages;
				var backButton = document.frmHistory.history_back;
				var nextButton = document.frmHistory.history_next;
				var lastIndex = visitedPages.length;
				var selectedIndex = visitedPages.selectedIndex + 1;
				
				if (document.getElementById("active_page") != null && document.getElementById("active_page") != "") {
					var pageName = document.getElementById("active_page").attributes.getNamedItem("name").value;
				} else {
					var pageName = strPostVariables;
				}
				
				if (visitedPages[lastIndex-1].text != pageName || pageName.indexOf("Zoeken") != -1) {
					if (strPostVariables.indexOf("request=frmSearch.search") != -1) {
						strRequestedType = "show_window";
						strPostVariables = strPostVariables.replace("request=frmSearch.search","request=frmSearch.show");
					}
					
					var newOption = new Option (pageName,"process_request('"+strRequestedType+"','"+strPostVariables+"','"+strObjectID+"',true)");
					
					/*-- Remove history pages after selected index ----*/
					for (i=lastIndex-1;i>=selectedIndex;i--) {
						visitedPages.remove(i);
					}
					
					nextButton.src = "./media/system/icons/history_next_disabled.gif";
					nextButton.style.cursor = "default";
					nextButton.onclick = "";
					
					visitedPages[selectedIndex] = newOption;
					visitedPages.selectedIndex = selectedIndex;
					
					if (selectedIndex > 1) {
						document.frmHistory.history_back.src = "./media/system/icons/history_back_enabled.gif";
						backButton.style.cursor = "pointer";
						backButton.onclick = function() {visitedPages.selectedIndex=visitedPages.selectedIndex-1;visitedPages.onchange();}
					}
				}
			}
		}

		/*
		  *	Execute all commands that were submitted in the response one by one.
		  */
		if (blExecuteCommands) {
			if (strExecuteCommands.indexOf("&&") != -1)	{
				strExecuteCommands = strExecuteCommands.split("&&");
				
				for (commandIndex=0; commandIndex<strExecuteCommands.length;commandIndex++) {
					if (strExecuteCommands[commandIndex] != "") {
						if (strExecuteCommands[commandIndex].indexOf("process_request") != -1)	{
							lstBuffer.push(strExecuteCommands[commandIndex]);
						} else {
							eval(strExecuteCommands[commandIndex]);
						}
					}
				}

				if (lstBuffer.length > 0) {
					eval(lstBuffer.shift());
				}
			} else {
				eval(strExecuteCommands);
			}
		}
	} catch (e) {
		if (DEBUG && (DEBUGLEVEL==DBL_ERROR || DEBUGLEVEL==DBL_DEBUG)) {
			alert(e.description);
		}
	}
}
	


function show_language_bar (Language) {
	var objLanguageBarNL = document.getElementById("language_bar_nl_NL");
	var objLanguageBarFR = document.getElementById("language_bar_fr_FR");
	var objLanguageBarEN = document.getElementById("language_bar_en_GB");
	var objLanguageBarDE = document.getElementById("language_bar_ge_GE");
	
	var objLanguageBar = document.getElementById("language_bar_" + Language);
	
	objLanguageBarNL.style.display = "none";
	objLanguageBarFR.style.display = "none";
	objLanguageBarEN.style.display = "none";
	objLanguageBarDE.style.display = "none";
	objLanguageBar.style.display = "block";
}

function state_changed() 
{ 
	var blExecuteCommands = false;
	var blContentContainerFound = false;
	var strExecuteCommands = "";
	var strRetrievedContent = "";

	/*
	  *	Display a animated gif based on the readystate of the request
	  *	0 - uninitialized; 1 - loading; 2 - loaded; 3 - interactive; 4 - complete
	  */
	if (xmlHTTP.readyState == 0)
	{
		//alert('0');
		if (strRequestedType != "load_menu" && strRequestedType != "set_active_menu" && 
				strRequestedType != "view_item" && strRequestedType != "view_member_item" && 
				strRequestedType != "update_database" && strRequestedType != "silent_update") {
			document.getElementsByTagName('body')[0].style.cursor = "default";
			//document.getElementById('application_status').style.background = "transparent url('./media/system/images/status_ready.gif') no-repeat";
		}
	}
	else if (xmlHTTP.readyState == 1)
	{
		//alert('1');
		if (strRequestedType != "load_menu" && strRequestedType != "set_active_menu" && 
				strRequestedType != "view_item" && strRequestedType != "view_member_item" && 
				strRequestedType != "update_database" && strRequestedType != "silent_update") {
			document.getElementsByTagName('body')[0].style.cursor = "wait";
			document.getElementById("progress_cloak").style.display = "block";
			document.getElementById("progress_wiske").style.display = "block";
			//document.getElementById('application_status').style.background = "transparent url('./media/system/images/status_loading_quick.gif') no-repeat";
			//document.getElementById('application_status').style.display = "inline";
		}
	}
	if (xmlHTTP.readyState == 2)
	{
		//alert('2');
		if (strRequestedType != "load_menu" && strRequestedType != "set_active_menu" && 
				strRequestedType != "view_item" && strRequestedType != "view_member_item" && 
				strRequestedType != "update_database" && strRequestedType != "silent_update") {
			document.getElementsByTagName('body')[0].style.cursor = "wait";
			//document.getElementById('application_status').style.background = "transparent url('./media/system/images/status_loading.gif') no-repeat";
		}
	}
	else if (xmlHTTP.readyState == 3)
	{
		//alert('3');
		if (strRequestedType != "load_menu" && strRequestedType != "set_active_menu" && 
				strRequestedType != "view_item" && strRequestedType != "view_member_item" && 
				strRequestedType != "update_database" && strRequestedType != "silent_update") {
			document.getElementsByTagName('body')[0].style.cursor = "wait";
			//document.getElementById('application_status').style.background = "transparent url('./media/system/images/status_loading.gif') no-repeat";
		}
	}
	else if (xmlHTTP.readyState == 4 || xmlHTTP.readyState == "complete")
	{
		//alert('4');
		setTimeout("process_response(xmlHTTP.responseText)",100);
		
		if (strRequestedType != "load_menu" && strRequestedType != "set_active_menu") {
			//document.getElementById('application_status').style.background = "transparent url('./media/system/images/status_ready.gif') no-repeat";
			//document.getElementById('application_status').style.display = "none";
			document.getElementsByTagName('body')[0].style.cursor = "default";
			document.getElementById("progress_wiske").style.display = "none";
			document.getElementById("progress_cloak").style.display = "none";
		}
		
		if (lstBuffer.length > 0) {
			setTimeout(lstBuffer.shift(),100);
		}
	} 
}

function update_attribute (elementName, attributeName, attributeValue) {
	var element = document.getElementById(elementName);
	var elementAttributes = element.attributes;
	
	elementAttributes.getNamedItem(attributeName).value = attributeValue;
}

function update_scroll_position (element) {
	var visitedPages = document.frmHistory.visited_pages;
	
	visitedPages.attributes.getNamedItem("scroll_container").value = element.id;
	visitedPages.attributes.getNamedItem("scroll_top").value = element.scrollTop;
}

function open_history (visitedPages) {
	eval(visitedPages.value);
}

function set_scroll_position (elementName) {
	var visitedPages = document.frmHistory.visited_pages;
	
	if (visitedPages.attributes.getNamedItem("scroll_container").value == elementName) {
		document.getElementById(elementName).scrollTop = visitedPages.attributes.getNamedItem("scroll_top").value;
	}
}

var KeyboardControl = 1;

function switchKeyboard(e) {
	if (!e) e=window.event;
	
	pressedKey = e.keyCode ? e.keyCode : e.which;
	var character = String.fromCharCode(pressedKey);

	/*
	if (DEBUG && (DEBUGLEVEL==DBL_DEBUG)) document.getElementById("ttm_content").innerHTML = "Ctrl: " + e.ctrlKey + "<br>Shift: " + e.shiftKey + "<br>Key: " + pressedKey + "<br>Character: " + character;
	*/
	
	if ((e.ctrlKey && e.shiftKey && pressedKey==11) || (e.ctrlKey && e.shiftKey && pressedKey==75)) {
		switched();
	} else if (KeyboardControl == 1 & ((e.ctrlKey && pressedKey==10) || (e.ctrlKey && pressedKey==13))) {
		process_request("validate_form","request=member.add_item");
	}
}

function switched(){
	if (KeyboardControl == 0) {
		KeyboardControl = 1;
		document.getElementById("icon_mnuHelpKeyboardControl").src = "./media/system/icons/enabled.gif";
	} else if (KeyboardControl == 1) {
		KeyboardControl = 0;
		document.getElementById("icon_mnuHelpKeyboardControl").src = "./media/system/icons/blank.gif";
	}
}

function key(e) {
	if (!e) e=window.event;
	
	pressedKey = e.keyCode ? e.keyCode : e.which;
	
	if (KeyboardControl == 1 & pressedKey==38) {
		var objSelectedItem = document.getElementById("item_details");
		var selectedItemAttributes = objSelectedItem.attributes;
		
		if (document.getElementById(selectedItemAttributes.getNamedItem("item_id").value+"_previous_item") != null) {
			document.getElementById(selectedItemAttributes.getNamedItem("item_id").value+"_previous_item").onclick();
		} else {
			return false;
		}
	} else if (KeyboardControl == 1 & pressedKey==40) {
		var objSelectedItem = document.getElementById("item_details");
		var selectedItemAttributes = objSelectedItem.attributes;
		
		
		if(document.getElementById(selectedItemAttributes.getNamedItem("item_id").value+"_next_item") != null) {
			document.getElementById(selectedItemAttributes.getNamedItem("item_id").value+"_next_item").onclick();
		} else {
			return false;
		}
	}
}