var numbers = new Array();
var int;

var oldvals = new Array();

Effect.SlideFromLeft= function(element) {
	  element = $(element).cleanWhitespace();
	  // SlideDown need to have the content of the element wrapped in a container element with fixed height!
	  var oldInnerBottom = element.down().getStyle('right');
	  var elementDimensions = element.getDimensions();
	  return new Effect.Scale(element, 100, Object.extend({
	    scaleContent: false,
	    scaleY: false,
	    scaleFrom: window.opera ? 0 : 1,
	    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
	    restoreAfterFinish: true,
	    afterSetup: function(effect) {
	      effect.element.makePositioned();
	      effect.element.down().makePositioned();
	      if (window.opera) effect.element.setStyle({left: ''});
	      effect.element.makeClipping().setStyle({width: '0px'}).show();
	    },
	    afterUpdateInternal: function(effect) {
	      effect.element.down().setStyle({right:
	        (effect.dims[0] - effect.element.clientWidth) + 'px' });
	    },
	    afterFinishInternal: function(effect) {
	      effect.element.undoClipping().undoPositioned();
	      effect.element.down().undoPositioned().setStyle({right: oldInnerBottom}); }
	    }, arguments[1] || { })
	  );
	};


/*
 * Formulare
 */
	
function setFirst(field) {
	field.select();
	field.style.backgroundColor = "#ffffff";
	field.style.border = "1px solid #666666";
}

function setMenue(field) {
	field.style.backgroundColor = "#ffffff";
	field.style.border = "1px solid #666666";
}

function newCaptcha() {
	var zeit = new Date();
	document.getElementById("captcha-img").src = "fileadmin/inc/class.captcha.php?"
			+ zeit.getMilliseconds();
}

function setOldVal(field) {
	if (field.value == "") {
		field.value = oldvals[field.name];
	}

	// field.select();
}

function setFirstNo(field) {
	if (field.value == oldvals[field.name]) {
		field.value = "";
	}

	field.select();
}

/*
* Ajax Funktionen für Shopping Cart
*/


function addToCart(partid) {
	$('shoppingcart-body').innerHTML = '<img src="fileadmin/cppistons/images/ajax-loader.gif"  style="margin-left: 55px; margin-top: 60px;" />';
	var pars = "eID=cppistons_cart&do=add&partid=" + partid;
	var myAjax = new Ajax.Request("index.php", {
		method :'get',
		parameters :pars,
		onComplete :updateCart
	});
}

function addOrderToCart(orderid) {
	$('shoppingcart-body').innerHTML = '<img src="fileadmin/cppistons/images/ajax-loader.gif"  style="margin-left: 55px; margin-top: 60px;" />';
	var parts = $('parts_'+orderid).value;
	var pars = "eID=cppistons_cart&do=addOrder&partid=" + parts + "&orderid="+orderid;
	var myAjax = new Ajax.Request("index.php", {
		method :'get',
		parameters :pars,
		onComplete :updateCart
	});
}

function updateCart(requestObject) {
	var xmldoc = requestObject.responseXML;
	xmldoc.getElementsByTagName("action")[0].normalize();
	xmldoc.getElementsByTagName("partid")[0].normalize();
	xmldoc.getElementsByTagName("cartcontent")[0].normalize();
	
	var cartcontent = xmldoc.getElementsByTagName("cartcontent")[0].firstChild.data;
	cartcontent.evalScripts();
	
	$('shoppingcart-body').innerHTML = cartcontent;

}

function changeQty(field) {

	var partid = field.name.split("-");
    partid = partid[1];
    var qty = field.value;
    
    $('shoppingcart-body').innerHTML = '<img src="fileadmin/cppistons/images/ajax-loader.gif"  style="margin-left: 55px; margin-top: 60px;" />';
    if (qty==0) {
    	var pars = "eID=cppistons_cart&do=remove&partid=" + partid;
    	var myAjax = new Ajax.Request("index.php", {
    		method :'get',
    		parameters :pars,
    		onComplete :updateCart
    	});
	}else {
		var pars = "eID=cppistons_cart&do=changeqty&partid=" + partid+"&qty="+qty;
		var myAjax = new Ajax.Request("index.php", {
			method :'get',
			parameters :pars,
			onComplete :updateCart
		});
	}
	
	
}

/*
* Ajax Fkt Checkout
*/

function deleteItem(partid) {
	if (confirm(delMsg)) {
		$('shoppingcart-body').innerHTML = '<img src="fileadmin/cppistons/images/ajax-loader.gif"  style="margin-left: 55px; margin-top: 60px;" />';
		var pars = "eID=cppistons_cart&do=remove&partid=" + partid;
		var myAjax = new Ajax.Request("index.php", {
			method :'get',
			parameters :pars,
			onComplete :updateCart
		});
	}
}

function deleteItemB(partid) {
	if (confirm(delMsg)) {
		$('copart-'+partid).hide(); 
		var pars = "eID=cppistons_cart&do=remove&partid=" + partid+"&big=1";
		var myAjax = new Ajax.Request("index.php", {
			method :'get',
			parameters :pars,
			onComplete :updateCartItem
		});
	}
}

function updateCartItem(requestObject) {
	var xmldoc = requestObject.responseXML;
	xmldoc.getElementsByTagName("action")[0].normalize();
	xmldoc.getElementsByTagName("partid")[0].normalize();
	xmldoc.getElementsByTagName("cartcontent")[0].normalize();
	xmldoc.getElementsByTagName("sum")[0].normalize();
	
	var partid = xmldoc.getElementsByTagName("partid")[0].firstChild.data;
	var sum = xmldoc.getElementsByTagName("sum")[0].firstChild.data;
	var cocontent = xmldoc.getElementsByTagName("cartcontent")[0].firstChild.data;
	cocontent.evalScripts();
	if (sum!=0) {
		$('cosum').innerHTML = sum;
		$('copart-'+partid).parentNode.removeChild($('copart-'+partid));
	}else {
		$('content-main').innerHTML = cocontent;
	}
}

/* 
* Preis ändern Warenkorb
*/
var rememberSelect="";

function select_fold(obj){
	rememberSelect = obj;
	var obj_parent = document.getElementById(obj+'_parent');
	var obj = document.getElementById(obj+'_foldout');
	if(obj.style.display == 'none'){
		obj.style.display = '';
		obj_parent.style.zIndex = 999999;
		$('clear_select').show();
	}else{
		obj.style.display = 'none';
		obj_parent.style.zIndex = 1;
		$('clear_select').hide();
	}
}

function clear_select(){
	select_fold(rememberSelect);
}
function setValQty(obj,val,text) {
	var linktext = document.getElementById(obj+'_link');
	linktext.innerHTML = text;
	
	var field = $(obj);
	field.value = val;
	select_fold(obj);
	
	changeQty(field);
}

/*
* Starfeature
*/

function switchProducer(id) {
	$('left-arrow').style.display = "none";
	$('innerheaderimg').src = producers[id]["headermiddle"].src;
	$('innerheaderimg').width =  producers[id]["headermiddle"].width;
	$('innerheaderimg').height =  producers[id]["headermiddle"].height;
	$('innerheaderimg').alt = producers[id]["title"];
	$('innerheaderimg').title = producers[id]["title"];
	
	if (producers[id]["featureimg"]) {
		$('featureimg').style.marginRight = "0px";
		$('featureimg').style.visibility = "visible";
		$('featureimg').src = producers[id]["featureimg"].src;
		$('featureimg').alt = producers[id]["title"];
		$('featureimg').title = producers[id]["title"];
	} else {
		$('featureimg').style.visibility = "hidden";
	}
	$('producerlink').innerHTML = producers[id]["text"];
	
	$('morebutton').href = producers[id]["link"];
	$('imagelink').href = producers[id]["link"];
	$('headerlink').href = producers[id]["link"];
	$('producerlink').href = producers[id]["link"];
	
	if (producers[id-1]!=undefined) {
		var afterTL = "block";
		//$('left-arrow').style.display = "block";
		//$('copy').style.display = "block";
		$('leftheaderimg').src = producers[id-1]["headerleft"].src;
		$('leftheaderimg').width =  producers[id-1]["headerleft"].width;
		$('leftheaderimg').height =  producers[id-1]["headerleft"].height;
		$('leftheaderimg').alt = producers[id-1]["title"];
		$('leftheaderimg').title = producers[id-1]["title"];
		$('left-arrow').href = 'javascript:switchProducer('+(id-1)+');';
	}else {
		//$('left-arrow').style.display = "none";
		//$('copy').style.display = "none";
		var afterTL = "none";
	}
	if (producers[id+1]!=undefined) {
		$('right-arrow').style.display = "none";
		var afterT = "block";
		$('rightheaderimg').src = producers[id+1]["headerleft"].src;
		$('rightheaderimg').width =  producers[id+1]["headerleft"].width;
		$('rightheaderimg').height =  producers[id+1]["headerleft"].height;
		$('rightheaderimg').alt = producers[id+1]["title"];
		$('rightheaderimg').title = producers[id+1]["title"];
		$('right-arrow').href = 'javascript:switchProducer('+(id+1)+');';
	}else {
		$('right-arrow').style.display = "none";
		var afterT = "none";
	}
	
	new Effect.SlideFromLeft("startfeature");
	
	setTimeout('$("right-arrow").style.display = "'+afterT+'";',1050);
	setTimeout('$("left-arrow").style.display = "'+afterTL+'";',1050);

}

/*
* Hersteller Menü
*/




/*  
 * Preis ändern Checkout
 */

function select_fold_cart(obj){
	remember_select = obj;
	var obj_parent = document.getElementById(obj+'_parent');
	var obj = document.getElementById(obj+'_foldout');
	if(obj.style.display == 'none'){
		obj.style.display = '';
		obj_parent.style.zIndex = 999999;
		$('clear_select').setStyle ({ display: 'block' });
	}else{
		obj.style.display = 'none';
		obj_parent.style.zIndex = 1;
		$('clear_select').setStyle ({ display: 'none' });
	}
}

function setValCart(obj,val,text) {
	var linktext = document.getElementById(obj+'_link');
	linktext.innerHTML = text;
	
	partid = obj.split("-");
	
	partid = partid[1];
	changeQtyBig(val,partid);
	select_fold_cart(obj);
}

function changeQtyBig(field) {

	var partid = field.name.split("-");
    partid = partid[1];
    var value = field.value;
    
	var pars = "eID=cppistons_cart&do=changeqtycart&partid=" + partid+"&qty="+value;
	var myAjax = new Ajax.Request("index.php", {
		method :'get',
		parameters :pars,
		onComplete :updatePrices
	});
}

function updatePrices(requestObject) {
	var xmldoc = requestObject.responseXML;
	xmldoc.getElementsByTagName("action")[0].normalize();
	xmldoc.getElementsByTagName("partid")[0].normalize();
	xmldoc.getElementsByTagName("cartcontent")[0].normalize();
	xmldoc.getElementsByTagName("sum")[0].normalize();
	
	var partid = xmldoc.getElementsByTagName("partid")[0].firstChild.data;
	var sum = xmldoc.getElementsByTagName("sum")[0].firstChild.data;
	var price = xmldoc.getElementsByTagName("cartcontent")[0].firstChild.data;

	$('price-'+partid).innerHTML = price;
	$('cosum').innerHTML = sum;
}


function setStates(countryField,stateField,selState) {
	var len = stateField.length;
    
	var pars = "eID=cppistons_cart&do=getstates&country=" + countryField.value+"&addrtype="+countryField.name.substr(0,8) + "&statefield="+stateField.id+"&selstate="+selState;
	var myAjax = new Ajax.Request("index.php", {
		method :'get',
		parameters :pars,
		onComplete :updateStates
	});
	
	
	/*var sel = false;

	for ( var stateCode in options[countryField.value]) {
		if (stateCode.length > 2) {
			break;
		}
		if (stateField.name.substr(0,9)=="delivery_") {
			sel = options[countryField.value][stateCode]["selD"];
		} else {
			sel = options[countryField.value][stateCode]["sel"];
		}
		
		var tmp = new Option(options[countryField.value][stateCode]["label"], stateCode, sel, sel);
		stateField.options[stateField.options.length] = tmp;
	}*/
}

function updateStates(requestObject) {
	var xmldoc = requestObject.responseXML;
	xmldoc.getElementsByTagName("action")[0].normalize();
	xmldoc.getElementsByTagName("addrtype")[0].normalize();
	xmldoc.getElementsByTagName("statefield")[0].normalize();
	xmldoc.getElementsByTagName("stateStr")[0].normalize();
	xmldoc.getElementsByTagName("enableStates")[0].normalize();
	
	//var partid = xmldoc.getElementsByTagName("partid")[0].firstChild.data;
	var statefield = xmldoc.getElementsByTagName("statefield")[0].firstChild.data;
	var stateStr = xmldoc.getElementsByTagName("stateStr")[0].firstChild.data;
	var enableStates = xmldoc.getElementsByTagName("enableStates")[0].firstChild.data;
	
	
	if (enableStates == 1) {
		$(statefield+"_label").style.visibility = "visible";
		$(statefield).style.visibility = "visible";
		
		fillSelect($(statefield), stateStr);
	} else {
		$(statefield+"_label").style.visibility = "hidden";
		$(statefield).style.visibility = "hidden";
	}
	
	
	
}


function fillSelect(pList, pOptionHTML)
{
  if (pList) {
    if (pList.outerHTML) {
      var begin = pList.outerHTML.match(/(<select .*?>)/i);
      var end   = pList.outerHTML.match(/(<\/select>)/i);
      if (begin && end) {
        var s = begin[1] + pOptionHTML + end[1];
        pList.outerHTML = s;
      }
    }
    else {
      pList.innerHTML = pOptionHTML;
    }
  }
}



function showBrands() {
	if ($("brands").style.display=="none") {
		$("brands").show();
		$("bgtrans").className = "bgtrans2";
	} else {
		$("brands").hide();
		$("bgtrans").className = "bgtrans";
	}
}

function getFilterResults() {
	var form = $('productfilter');
	var fElements = form.getElements('productfilter');
	var producers = Array();
	var sliders = Array();
	
	for ( var i = 0; i < fElements.length; i++) {
		if (fElements[i].checked) {
			producers.push(fElements[i].value);
		}else if(fElements[i].id.substr(0,3)=="inp") {
			var name = fElements[i].id.split("-");
			name = name[1];
			sliders.push(name + "=" + fElements[i].value);
		}
	}
	
	var producerStr = producers.join(",");
	var sliderStr = sliders.join("&");
	sliderStr = "&"+sliderStr;
	
	var pars = "eID=cppistons_filter&do=updateres&producers=" + producerStr + sliderStr;
	var myAjax = new Ajax.Request("index.php", {
		method :'get',
		parameters :pars,
		onComplete :updateFilterRes
	});
	
}

function updateFilterRes(requestObject) {
	var responseStr = requestObject.responseText;
	
	var filterResult = responseStr.split(",");

	$("resnum1").innerHTML = filterResult[0];
	$("resnum2").innerHTML = filterResult[2];
	$("resnumkit").innerHTML = filterResult[1];
}

function remindUser(partid,userid) {
	var pars = "eID=cppistons_cart&do=remind&partid=" + partid+"&userid="+userid;
	var myAjax = new Ajax.Request("index.php", {
		method: 'get',
		parameters: pars,
		onComplete: remindUserRes
	});
}

function removeReminder(partid,userid) {
	var pars = "eID=cppistons_cart&do=removeremind&partid=" + partid+"&userid="+userid;
	var myAjax = new Ajax.Request("index.php", {
		method: 'get',
		parameters: pars,
		onComplete: remindUserRes
	});
}


function remindUserRes(requestObject) {
	var xmldoc = requestObject.responseXML;
	xmldoc.getElementsByTagName("action")[0].normalize();
	xmldoc.getElementsByTagName("partid")[0].normalize();
	xmldoc.getElementsByTagName("cartcontent")[0].normalize();
	
	var partid = xmldoc.getElementsByTagName("partid")[0].firstChild.data;
	
	var cartcontent = xmldoc.getElementsByTagName("cartcontent")[0].firstChild.data;
	$("remind_"+partid).innerHTML = cartcontent;
	cartcontent.evalScripts();
	
}


/*
 * Suche
 * 
 */
 
function enableDelivery() {
	 
	 var formObj = document.userdata == undefined ? document.checkout2 : document.userdata;
	 
	 with (formObj) {
		delivery_gender.disabled = no_shipping.checked;
		delivery_firstname.disabled = no_shipping.checked;
		delivery_lastname.disabled = no_shipping.checked;
		delivery_address.disabled = no_shipping.checked;
		delivery_address2.disabled = no_shipping.checked;
		delivery_zip.disabled = no_shipping.checked;
		delivery_city.disabled = no_shipping.checked;
		delivery_country.disabled = no_shipping.checked;
		delivery_state.disabled = no_shipping.checked;
		delivery_company.disabled = no_shipping.checked;
		delivery_telephone.disabled = no_shipping.checked;
		delivery_fax.disabled = no_shipping.checked;
	 }
}
 

function doSearchByNumber() {
	if ($("itemsearch-val").value.length>2 && $("itemsearch-val").value != oldvals["itemsearchval"]&& $("itemsearch-val").value != "") {
		window.location.href = $("itemsearch-url").value + "?search=" + $("itemsearch-val").value;
	}else {
		alert(searcherror);
	}
}

 /**
 *
 *  Javascript sprintf
 *  http://www.webtoolkit.info/
 *
 *
 **/


sprintfWrapper = {

	init : function () {

		if (typeof arguments == "undefined") { return null; }
		if (arguments.length < 1) { return null; }
		if (typeof arguments[0] != "string") { return null; }
		if (typeof RegExp == "undefined") { return null; }

		var string = arguments[0];
		var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);
		var matches = new Array();
		var strings = new Array();
		var convCount = 0;
		var stringPosStart = 0;
		var stringPosEnd = 0;
		var matchPosEnd = 0;
		var newString = '';
		var match = null;

		while (match = exp.exec(string)) {
			if (match[9]) { convCount += 1; }

			stringPosStart = matchPosEnd;
			stringPosEnd = exp.lastIndex - match[0].length;
			strings[strings.length] = string.substring(stringPosStart, stringPosEnd);

			matchPosEnd = exp.lastIndex;
			matches[matches.length] = {
				match: match[0],
				left: match[3] ? true : false,
				sign: match[4] || '',
				pad: match[5] || ' ',
				min: match[6] || 0,
				precision: match[8],
				code: match[9] || '%',
				negative: parseInt(arguments[convCount]) < 0 ? true : false,
				argument: String(arguments[convCount])
			};
		}
		strings[strings.length] = string.substring(matchPosEnd);

		if (matches.length == 0) { return string; }
		if ((arguments.length - 1) < convCount) { return null; }

		var code = null;
		var match = null;
		var i = null;

		for (i=0; i<matches.length; i++) {

			if (matches[i].code == '%') { substitution = '%' }
			else if (matches[i].code == 'b') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(2));
				substitution = sprintfWrapper.convert(matches[i], true);
			}
			else if (matches[i].code == 'c') {
				matches[i].argument = String(String.fromCharCode(parseInt(Math.abs(parseInt(matches[i].argument)))));
				substitution = sprintfWrapper.convert(matches[i], true);
			}
			else if (matches[i].code == 'd') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 'f') {
				matches[i].argument = String(Math.abs(parseFloat(matches[i].argument)).toFixed(matches[i].precision ? matches[i].precision : 6));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 'o') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(8));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 's') {
				matches[i].argument = matches[i].argument.substring(0, matches[i].precision ? matches[i].precision : matches[i].argument.length)
				substitution = sprintfWrapper.convert(matches[i], true);
			}
			else if (matches[i].code == 'x') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 'X') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
				substitution = sprintfWrapper.convert(matches[i]).toUpperCase();
			}
			else {
				substitution = matches[i].match;
			}

			newString += strings[i];
			newString += substitution;

		}
		newString += strings[i];

		return newString;

	},

	convert : function(match, nosign){
		if (nosign) {
			match.sign = '';
		} else {
			match.sign = match.negative ? '-' : match.sign;
		}
		var l = match.min - match.argument.length + 1 - match.sign.length;
		var pad = new Array(l < 0 ? 0 : l).join(match.pad);
		if (!match.left) {
			if (match.pad == "0" || nosign) {
				return match.sign + pad + match.argument;
			} else {
				return pad + match.sign + match.argument;
			}
		} else {
			if (match.pad == "0" || nosign) {
				return match.sign + match.argument + pad.replace(/0/g, ' ');
			} else {
				return match.sign + match.argument + pad;
			}
		}
	}
}

sprintf = sprintfWrapper.init;



