

Array.prototype.contains = function (element)
	{
	    for (var i = 0; i < this.length; i++) {
	        if (this[i] == element) {
	            return i;
	        }
	    }
	    return -1;
	}
	
	Array.prototype.remove = function(from, to) 
	{
		var rest = this.slice((to || from) + 1 || this.length);
		this.length = from < 0 ? this.length + from : from;
		return this.push.apply(this, rest);
	}
	
	var selected_products = new Array();
	
	function getCheckedProducts(prod_id){
		var elements = new Array();
		var selected = new Array();
		var url="";
		var y;
		elements = document.getElementsByName("compare_beamer");
		

		for(var y = 0; y < selected_products.length; y++){
			if(selected_products[y]!="")
			selected.push(selected_products[y]);
		}
		
		for(var i = 0; i < elements.length; i++)
        {
        	var obj = elements.item(i);
        	if(obj.checked && selected_products.contains(obj.value)<0){
            	selected.push(obj.value);
            }
        }
		
		if(prod_id!=null && selected_products.contains(prod_id)<0){
			selected.push(prod_id);
		}
		
		var baseAddr = window.location.protocol + window.location.host;
		if( document.getElementsByTagName ) {
			var elems = document.getElementsByTagName('base');

			if( elems.length ) {
				baseAddr = elems[0].href;
			}
		}
        
		url="?";
		for(var x = 0; x < selected.length; x++){
			y=x+1;
			url+="prod" + y +"=" + selected[x]+"&";
		}
		location.href=baseAddr + 'compare_products.php' + url;
	} 
	
	function checkCounter(){
		var elements = new Array();
		var counter = 0;
		var sel_elements = new Array();
		
		elements = document.getElementsByName("compare_beamer");
		
		for(var i = 0; i < elements.length; i++)
        {
        	var obj = elements.item(i);
        	
        	if(obj.checked && selected_products.contains(obj.value)<0){
            	selected_products.push(obj.value);
            } else if (!obj.checked && selected_products.contains(obj.value)>=0){
            	var pos = selected_products.contains(obj.value);
            	selected_products.remove(pos);
            }
        }
        
        
		setRequest(selected_products,0,true);
		
		counter = selected_products.length;
		
		
        for(var i = 0; i < elements.length; i++)
        {
        	var obj = elements.item(i);
        	if(!obj.checked && counter==3){
            	obj.disabled=true;
            }else{
            	obj.disabled=false;
            }
        }
	}
	
	// Request senden
	function setRequest(sel_elements, reset, async) {
		// Request erzeugen
		if (window.XMLHttpRequest) {
			request = new XMLHttpRequest(); // Mozilla, Safari, Opera
		} else if (window.ActiveXObject) {
			try {
				request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
			} catch (e) {
				try {
					request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
				} catch (e) {}
			}
		}
		
		if(reset==1){
			var params="reset_selection=" + reset;
		}else{
			var params="item_ids=" + sel_elements;
		}
		
		// überprüfen, ob Request erzeugt wurde
		if (!request) {
			alert("Kann keine XMLHTTP-Instanz erzeugen");
			return false;
		} else {
			var url = "compare_products.php";
			// Request öffnen
			request.open('post', url, async);
			
			request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			request.setRequestHeader("Content-length", params.length);
			request.setRequestHeader("Connection", "close");
			
			// Request senden
			request.send(params);
			
			// Request auswerten
			request.onreadystatechange = interpretRequest;
		}
	}
	
	function interpretRequest() {
		switch (request.readyState) {
			// wenn der readyState 4 und der request.status 200 ist, dann ist
			// alles korrekt gelaufen
			case 4:
				if (request.status != 200) {
					alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
				} else {
					
					if (request.responseText!="reset") {
						selected_products = request.responseText.split(",");
					} else {
						selected_products = new Array();
					}
					
					// alert(request.responseText);
				}
				break;
			default:
				
				break;
		}
	}
	
	
	function pausecomp(millis){
		var date = new Date();
		var curDate = null;
		
		do { 
			curDate = new Date(); 
		}while(curDate-date < millis);
	} 
	
	function over_function(){
		pausecomp(300);
		document.getElementById('camp').style.display='none';
		document.getElementById('camp_hover').style.display='block';
	}
	
	function out_function(){
		pausecomp(200);
		document.getElementById('camp').style.display='block';
		document.getElementById('camp_hover').style.display='none';
	}

