function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser is not supported");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

//Called from keyup on the search textbox.
//Starts the AJAX request.
function getpr() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		$quicksearch = document.getElementById('artnrp');
		var SessID = document.getElementById('p_sessid').value;
		if($quicksearch == null){return false;}
		var str = escape($quicksearch.value);
		searchReq.open("GET", 'ajax_preis.php?s=' + str +'&SessID='+ SessID, true);
		searchReq.onreadystatechange = handlePrice; 
		searchReq.send(null);
	}
}

//Called when the AJAX response is returned.
function handlePrice() {
	if (searchReq.readyState == 4) {
		var str = searchReq.responseText.split("\n");
		
		for(i=0; i < str.length; i++) 
		{
			
			
			
			var temp_art = str[i].split(";");
			var ss1 = getElementsByClassName('div_container_'+temp_art[0]);
			for(var i1=0; i1 < ss1.length; i1=i1+1) 
         { 
	         ss1[i1].style.display = "block";
         }
			
			
         for(ii=0; ii < temp_art.length; ii++) 
			{
				var art_preis_type = temp_art[ii].split(":");
				if(art_preis_type[0]=="GRUNDPREIS_DISPLAY")
				{
					var ss2 = getElementsByClassName('div_grundpreis_'+temp_art[0]);
					for(var i2=0; i2 < ss2.length; i2=i2+1) 
                    { 
                        ss2[i2].innerHTML = art_preis_type[1];
                    }
				}
				if(art_preis_type[0]=="BRUTTO")
				{
					var ss3= getElementsByClassName('div_preis_'+temp_art[0]);
					for(var i3=0; i3 < ss3.length; i3=i3+1) 
                    {
                        ss3[i3].innerHTML = art_preis_type[1];
                    }
				}
				
				if(art_preis_type[0]=="ORIGINAL")
				{
					var ss4 = getElementsByClassName('div_original_'+temp_art[0]);
					for(var i4=0; i4 < ss4.length; i4=i4+1) 
               {
                  ss4[i4].innerHTML = art_preis_type[1];
				   }
            }
			}
				
		}
	}
}

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		$quicksearch = document.getElementById('txtSearch');
		if($quicksearch == null) 
		{
			return false;
		}
		var str = escape($quicksearch.value);
		searchReq.open("GET", 'searchSuggest.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
	}
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest')
		var str = searchReq.responseText.split("\n");
		var id_add = 10000;
		var out = '';
		for(i=1; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var suggest = '<div ID=\"'+(id_add+i)+'\" onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearchandsubmit(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			out += suggest;
		}
		if(i>1) ss.innerHTML = '<div class="suggest_link" style="font-size:11px;font-weight:bold;background:#efefef;cursor:default;">Suchvorschläge</div>'+out; else ss.innerHTML='';
		
	}
}


//Mouse over function
function suggestOver(div_value) {
	if(div_value)	div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value) {
	if(div_value) div_value.className = 'suggest_link';
}
//Click function
function setSearch(value) {
	// Strip out HTML-Tags
	var re= /<\S[^><]*>/gi;
	value = value.replace(re, "");
	$quicksearch = document.getElementById('txtSearch');
	if($quicksearch != null)
	{
		document.getElementById('txtSearch').value = value;
	}
	document.getElementById('search_suggest').innerHTML = '';
}

function setinput(value) {
	// Strip out HTML-Tags
	var re= /<\S[^><]*>/gi;
	value = value.replace(re, "");
	$quicksearch = document.getElementById('txtSearch');
	if($quicksearch != null)
	{
		document.getElementById('txtSearch').value = value;
	}
}

function setSearchandsubmit(value) 
{
	setSearch(value);
	document.frmSearch.submit();
}

var act_start = 10000;
var act_end = 10019;
var act = act_start;

function init(e)
{
	if(act<=act_start)
	{
		act = act_start;
	}
	else if(act>=act_end)
	{
		act = act_end;
	}
	if(navigator.appName == "Netscape")
	{
		document.onkeyup = init;
	}
	if(e)
	{
		var pK = e.which;
	}
	else if(window.event)
	{
		var pK = window.event.keyCode;
	}
	if(pK != undefined)
	{
		if(pK == 40)
		{
			act = act+1;
			var act_id = document.getElementById(act);
			if(act_id!=null)
			{
				if(act!=act_start+1)
				{
					var old_id = document.getElementById((act-1));
				}
				suggestOver(act_id);
				suggestOut(old_id);
				if(act_id) setinput(act_id.innerHTML);
			}
		}
		else if(pK == 38)
		{
			act = act-1;
			var act_id = document.getElementById(act);
			if(act_id!=null)
			{
				if(act!=act_end)
				{
					var old_id = document.getElementById((act+1));
				}
				suggestOver(act_id);
				suggestOut(old_id);
				if(act_id) setinput(act_id.innerHTML);
			}
		}
		else if(pK == 13)
		{
			var act_id = document.getElementById(act);
			if(act_id) setSearch(act_id.innerHTML);
			document.frmSearch.submit();
		}
		else if(pK != 39 && pK != 38 && pK != 37 && pK != 40)
		{
			searchSuggest();
		}
		//alert(pK);
	}
}
var act_start = 10000;
var act_end = 10019;
var act = act_start;

function fastcartsubmitter()
{
	if(act<=act_start)
	{
		act = act_start;
	}
	
	
	var act_id = document.getElementById(act+1);
	
	if(act_id)
	{
		suggestOver(act_id);
		setartnrSearch(act_id.innerHTML);
		document.fastcart.submit();
	}
	else
	{
		document.fastcart.submit();
	}
}


function artnrinit(e)
{
	if(act<=act_start)
	{
		act = act_start;
	}
	else if(act>=act_end)
	{
		act = act_end;
	}
	if(navigator.appName == "Netscape")
	{
		document.onkeyup = artnrinit;
	}

	var pK = e ? e.which : window.event.keyCode;

	if(pK == 40)
	{
		act = act+1;
		var act_id = document.getElementById(act);
		if(act_id!=null)
		{
			if(act!=act_start+1)
			{
				var old_id = document.getElementById((act-1));
			}
			suggestOver(act_id);
			suggestOut(old_id);
		}
	}
	else if(pK == 38)
	{
		act = act-1;
		var act_id = document.getElementById(act);
		if(act_id!=null)
		{
			if(act!=act_end)
			{
				var old_id = document.getElementById((act+1));
			}
			suggestOver(act_id);
			suggestOut(old_id);
		}
	}
	else if(pK == 13)
	{
		var act_id = document.getElementById(act);
		if(act_id)
		{
			suggestOver(act_id);
			setartnrSearch(act_id.innerHTML);
		//	document.fastcart.submit();
		}
		else
		{
		//	document.fastcart.submit();
		}
		
	}
	else if(pK != 39 && pK != 38 && pK != 37 && pK != 40 )
	{
		artnrSuggest();
	}
	//alert(act);
}

//Called from keyup on the search textbox.
//Starts the AJAX request.
function artnrSuggest() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('artnrSearch').value);
		searchReq.open("GET", 'searchSuggest.php?artnrsearch=' + str, true);
		searchReq.onreadystatechange = handleSearchartnrSuggest;
		searchReq.send(null);
	}
}

//Called when the AJAX response is returned.
function handleSearchartnrSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('artnrsuggest')
		ss.innerHTML = '';
		var id_add2 = 10001;
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var suggest = '<div ID=\"'+(id_add2+i)+'\" onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setartnrSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

//Click function
function setartnrSearch(value) {
	var splitvalue = value.split("<");
	document.getElementById('artnrSearch').value = splitvalue[0];
	document.getElementById('artnrsuggest').innerHTML = '';
}
