/*  AJAX component for quicksearch feature
 *  (c) Copyright 2009 Soehnges Solutions; http://www.soehnges-solutions.de
 *  All rights reserved.
 *--------------------------------------------------------------------------*/
var xmlHttp = false;

function initXMLHTTPRequest() {
	var req = null;
	try	{
		// Firefox, Opera 8.0+, Safari
		req=new XMLHttpRequest();     
	} catch (e) {
	    // Internet Explorer         
	    try {
	    	req=new ActiveXObject("Msxml2.XMLHTTP");
	    } catch (e) {
	    	try {
	    		req=new ActiveXObject("Microsoft.XMLHTTP");             
	    	}
	        catch (e) 
	        {
	            return false;            
	        }         
	    }     
	}
	return req;
}
xmlHttp = initXMLHTTPRequest();
var selqsvalue = "";
var selqsline = -1;
var isinsearchview = false;
var curfield;
var newfield;
function quicksearchKey(e, field) {
	newfield = field;
    if (xmlHttp) {
  		 if (!e) e=window.event;
  		 if (e.keyCode==40 || e.keyCode==38 || e.keyCode==13)
  		 	return;
		 var sval = field.value;
		 if (sval == selqsvalue)
		 	return;
		 selqsvalue = sval;
	     xmlHttp.open('GET', 'quicksearch.php?field=' + newfield.id + '&value=' + escape(sval), true);
	     xmlHttp.onreadystatechange = function () {
	         if (xmlHttp.readyState == 4) {
		        // only if "OK"
	         	if (xmlHttp.responseText.length > 0) {
					if (xmlHttp.responseText == "EMPTY")
						quicksearchShow(false);
					else	         	
        				quicksearchShow(true);
        		}
	         }
	     }
	     xmlHttp.send(null);
	 }
	 
	 return true;
}
function quicksearchShow(value, field) {
	if (!value) {
		if (isinsearchview)
			return;
		selqsline = -1;
		selqsvalue = "";
		newfield = null;
	}
	if (xmlHttp) {
		var qselm = document.getElementById("quicksearch");
		if (newfield != curfield) {
			curfield = newfield;
			if (curfield != null)
				qselm.style.left = curfield.offsetParent.offsetLeft + "px";
		} 
		qselm.style.visibility = (value)? "visible":"hidden";
		var qselm2 = document.getElementById("quicksearch_view");
		qselm2.innerHTML = xmlHttp.responseText;
		
	}
}
function quicksearchSelectLine(index, gettext, submit) {
	var newfield = document.getElementById("qsline" + index);
	if (newfield || index == -1) {
		if (selqsline != -1) {
			var oldfield = document.getElementById("qsline" + selqsline);
			oldfield.className = '';
			selqsline = -1;
		}
		selqsline = index;
		if (newfield) {
			newfield.className = 'selected';
			if (gettext) {
				var txtfield = curfield;
				var content;
				if(document.all) {
					content = document.getElementById("qsline" + index).innerText;
				} else {
					content = document.getElementById("qsline" + index).textContent;
				}
				txtfield.value = content;
				if (submit) {
					isinsearchview = false;
					quicksearchShow(false);
					txtfield.form.submit();
				}
			}
		}
	}
	return false;
}
function stripHtml(s) {
	return s.replace(/\\<B\\>/g, '');
}
function quicksearchKeyDown(e, field) {
	newfield = field;
	var kc = e.keyCode;
	if (!document.getElementById("qsline" + selqsline)) {
		selqsline = -1;
		selqsvalue = "";
		newfield = null;
	}
	if (kc==40) {
		newselqsline = selqsline+1;
		quicksearchSelectLine(newselqsline,true,false);
	} else if (kc==38) {
		newselqsline = selqsline-1;
		if (newselqsline<0)
			newselqsline = 0;
		quicksearchSelectLine(newselqsline,true,false);
	}
	return true;
}
function quicksearchMouseOver(e) {
	isinsearchview = true;
}
function quicksearchMouseOut(e) {
	isinsearchview = false;
}

