/*
// +----------------------------------------------------------------------+
// | Copyright (c) 2004 Bitflux GmbH                                      |
// +----------------------------------------------------------------------+
// | Licensed under the Apache License, Version 2.0 (the "License");      |
// | you may not use this file except in compliance with the License.     |
// | You may obtain a copy of the License at                              |
// | http://www.apache.org/licenses/LICENSE-2.0                           |
// | Unless required by applicable law or agreed to in writing, software  |
// | distributed under the License is distributed on an "AS IS" BASIS,    |
// | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or      |
// | implied. See the License for the specific language governing         |
// | permissions and limitations under the License.                       |
// +----------------------------------------------------------------------+
// | Author: Bitflux GmbH <devel@bitflux.ch>                              |
// +----------------------------------------------------------------------+

*/
var liveSearchReq = false;
var t = null;
var liveSearchLast = "";
	
var isIE = false;
// on !IE we only have to initialize it once
if (window.XMLHttpRequest) {
	liveSearchReq = new XMLHttpRequest();
}

function liveSearchInit() {

if(!document.getElementById) return;

var searchform = document.getElementById('searchform');
if(!searchform) return;

if (window.XMLHttpRequest || window.ActiveXObject)
{
	var regex = new RegExp(/^\?q=.*/);
	var p=location.search;
	var q = (p && regex.test(p))?p.substring(3,p.length):'Search';
}
	if (navigator.userAgent.indexOf("Safari") > 0) {
		document.getElementById('livesearch').addEventListener("keydown",liveSearchKeyPress,false);
//		document.getElementById('livesearch').addEventListener("blur",liveSearchHide,false);
	} else if (navigator.product == "Gecko") {
		
		document.getElementById('livesearch').addEventListener("keypress",liveSearchKeyPress,false);
		document.getElementById('livesearch').addEventListener("blur",liveSearchHideDelayed,false);
		
	} else {
		document.getElementById('livesearch').attachEvent('onkeydown',liveSearchKeyPress);
//		document.getElementById('livesearch').attachEvent("onblur",liveSearchHide,false);
		isIE = true;
	}
	
	document.getElementById('livesearch').setAttribute("autocomplete","off");
	
	if(q != 'Search')
	{
		liveSearchStart();
	}

}

function liveSearchHideDelayed() {
	window.setTimeout("liveSearchHide()",400);
}
	
function liveSearchHide() {
	document.getElementById("LSResult").style.display = "none";
	var highlight = document.getElementById("LSHighlight");
	if (highlight) {
		highlight.removeAttribute("id");
	}
}

function liveSearchKeyPress(event) {
	
	if (event.keyCode == 40 )
	//KEY DOWN
	{
		highlight = document.getElementById("LSHighlight");
		if (!highlight) {
			highlight = document.getElementById("LSShadow").firstChild.firstChild;
		} else {
			highlight.removeAttribute("id");
			highlight = highlight.nextSibling;
		}
		if (highlight) {
			highlight.setAttribute("id","LSHighlight");
		} 
		if (!isIE) { event.preventDefault(); }
	} 
	//KEY UP
	else if (event.keyCode == 38 ) {
		highlight = document.getElementById("LSHighlight");
		if (!highlight) {
			highlight = document.getElementById("LSResult").firstChild.firstChild.lastChild;
		} 
		else {
			highlight.removeAttribute("id");
			highlight = highlight.previousSibling;
		}
		if (highlight) {
				highlight.setAttribute("id","LSHighlight");
		}
		if (!isIE) { event.preventDefault(); }
	} 
	//ESC
	else if (event.keyCode == 27) {
		highlight = document.getElementById("LSHighlight");
		if (highlight) {
			highlight.removeAttribute("id");
		}
		document.getElementById("LSResult").style.display = "none";
	} 
}
function liveSearchStart() {
	if(!document.getElementById('searchform')) return;
	if (t) {
		window.clearTimeout(t);
	}
	t = window.setTimeout("liveSearchDoSearch()",200);
}

function liveSearchDoSearch() {

	if (typeof liveSearchRoot == "undefined") {
		liveSearchRoot = "";
	}
	if (typeof liveSearchRootSubDir == "undefined") {
		liveSearchRootSubDir = "";
	}
	if (liveSearchLast != document.forms.searchform.q.value) {
	if (liveSearchReq && liveSearchReq.readyState < 4) {
		liveSearchReq.abort();
	}
	if ( document.forms.searchform.q.value == "") {
		liveSearchHide();
		return false;
	}
	if (window.XMLHttpRequest) {
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		liveSearchReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	liveSearchReq.onreadystatechange= liveSearchProcessReqChange;
	liveSearchPage = liveSearchRoot + "/css_js/livesearch.php?q=" + document.forms.searchform.q.value;
	liveSearchReq.open("GET", liveSearchPage);
	liveSearchLast = document.forms.searchform.q.value;
	liveSearchReq.send(null);
	}
}

function liveSearchProcessReqChange() {
	
	if (liveSearchReq.readyState == 4) {
		var  res = document.getElementById("LSResult");
		res.style.display = "block";
		var  sh = document.getElementById("LSShadow");
		
		sh.innerHTML = liveSearchReq.responseText;
		 
	}
}

function liveSearchSubmit() {
	var highlight = document.getElementById("LSHighlight");
	if (highlight && highlight.firstChild) {
		window.location = liveSearchRoot + liveSearchRootSubDir + highlight.firstChild.nextSibling.getAttribute("href");
		return false;
	} 
	else {
		return true;
	}
}

function clrq(elem)
{
	if(elem.value == 'Search'){elem.value = '';}
}

//Copyright © 2003 Tim Burden
//old browsers can still see everything
//new browsers get better toys
var ById = document.getElementById;

var HoldOpen = new Array();
var backLeft = new Array();
var backTop = new Array();

function expandOne(a)
{
	if(!ById)return;
    	HoldOpen[a] = (document.getElementById(a).style.display=='none')?1:0;
	document.getElementById(a).style.display = HoldOpen[a]?'block':'none';
	exp = 'exp' + a.substring(1);
	//alert(exp);
	document.getElementById(exp).innerHTML=HoldOpen[a]?'-':'+';
}

function collapseAll()
{
	if(!ById)return;
	for(i=0;document.getElementById('n'+i);i++)
	{
		document.getElementById('n'+i).style.display='none';
		HoldOpen['n'+i] = 0;
	}
	text = '<br /><a class="collapse" href="javascript:expandAll();" title="Expand Everything">[+] Expand Everything</a>';
	document.getElementById('menu_control').innerHTML=text;
}

function expandAll()
{
	if(!ById)return;
	for(i=0;document.getElementById('n'+i);i++)
	{
		document.getElementById('n'+i).style.display='block';
		HoldOpen['n'+i] = 1;
	}
	text = '<br /><a class="collapse" href="javascript:collapseAll();" title="Collapse Everything">[+] Collapse Everything</a>';
	document.getElementById('menu_control').innerHTML=text;
}

function showStuff(a,on)
{
	//if (HoldOpen[a]) return;
	if(!ById)return;
	if (on)
	{
		moveLayers(a);
		document.getElementById(a).style.display = "block";
	} else
	{
		moveLayersBack(a)
		document.getElementById(a).style.display = "none";
	}
}

function moveLayers(a)
{
	backLeft[a] = document.getElementById(a).style.pixelLeft;
	document.getElementById(a).style.pixelLeft = window.event.clientX + document.body.scrollLeft + 40;
	backTop[a] = document.getElementById(a).style.pixelTop;
	document.getElementById(a).style.pixelTop = window.event.clientY + document.body.scrollTop - 20;
	document.getElementById(a).style.position = 'absolute';
	document.getElementById(a).style.fontWeight = 'bold';
	document.getElementById(a).style.border = '1px #98AAB1 solid';
	document.getElementById(a).style.background = '#ffffdd';
}

function moveLayersBack(a)
{
	document.getElementById(a).style.pixelLeft = backLeft[a];
	document.getElementById(a).style.pixelTop = backTop[a];
	document.getElementById(a).style.position = 'static';
	document.getElementById(a).style.border = 'none';
	document.getElementById(a).style.background = '#ffffff';
	document.getElementById(a).style.fontWeight = 'normal';
}

function select(pic, pid)
{
	if(!ById) return;
	for(i=0;document.getElementById(i);i++)
	{
		if(document.getElementById(i).style['borderColor'] != 'red')
		{
			document.getElementById(i).style.border = '1px gray solid';
		}
	}
	if(document.getElementById(pid).style['borderColor'] != 'red')
	{
		document.getElementById(pid).style.border = '2px blue solid';
	}

	document.getElementById('newpic').value = pic;
}

