var browser = "";
var html = "";
var jcItems = new Array();
var jcCount = new Number(0);
var jcSum = new Number(0);
var jcPP = new Number(pp);
var jcShipping = new Number(-1);
var jcShippingCost = new Number(0);
var jcShippingText = "";
var jcTotal = new Number(0);

function openWindow(url){
        if (url == null) url = "";
        if (url != ""){
                window.open(url, "Info", "width=600,height=400,scrollbars=yes,resizable=yes");
        }
}

function addItemGebot(id, text, qty, sprice, gebot){
        var item = new Array();
        var ident = false;

        var orgprice = 0;
        var minfaktor = 0.5;
        var minprs=0;

        if (enableIdentify){
                for (var i=0;i<jcItems.length;i++){
                        if (jcItems[i][1] == id){
                                jcItems[i][3] = eval(new Number(jcItems[i][3]) + new Number(toNumber(qty)));
                                jcItems[i][5] = eval(jcItems[i][3]*jcItems[i][4]);
                                ident = true;
                                break;
                        }
                }
        }

        orgprice = sprice.replace(",",".");
        minprs = eval(orgprice * minfaktor);
        // alert (minprs);

        if (gebot < minprs) {
           alert ("Unrealistische Gebote werden ignoriert !");
           return;
         }

        text = text+"<br><b>Gebot von Original Preis:"+orgprice+"</b>";
        sprice=gebot;

        if (!ident){
                item[0] = jcItems.length+1;
                item[1] = id;
                item[2] = text;
                item[3] = toNumber(qty);
                item[4] = toNumber(sprice);
                item[5] = eval(item[3]*item[4]);
                item[6] = null;
                jcItems[jcItems.length] = item;
        }

        calcSums();
        if (notificationAfterAddItem) alert("Der Artikel \""+text+"\" wurde in Ihren Warenkorb gelegt.");
        if (actionAfterAddItem != "") eval(actionAfterAddItem);
}


function addItem(id, text, qty, sprice, dLink){
	var item = new Array();
	var ident = false;
	
	if (enableIdentify){
		for (var i=0;i<jcItems.length;i++){
			if (jcItems[i][1] == id){			
				jcItems[i][3] = eval(new Number(jcItems[i][3]) + new Number(toNumber(qty)));
				jcItems[i][5] = eval(jcItems[i][3]*jcItems[i][4]);
				ident = true;
				break;
			}
		}
	}
	
	if (!ident){
		item[0] = jcItems.length+1;
		item[1] = id;
		item[2] = text;
		item[3] = toNumber(qty);
		item[4] = toNumber(sprice);
		item[5] = eval(item[3]*item[4]);
		item[6] = dLink;
		jcItems[jcItems.length] = item;
	}
	
	calcSums();
	if (notificationAfterAddItem) alert("Der Artikel \""+text+"\" wurde in Ihren Warenkorb gelegt.");
	if (actionAfterAddItem != "") eval(actionAfterAddItem);
	
}

function changeQuantity(qty, pos){
	if (isNaN(toNumber(qty))){
		alert("Die Menge, die Sie eingegeben haben, ist keine Zahl");
		return;
	}
	
	for (var i=0;i<jcItems.length;i++){
		if (jcItems[i][0] == pos){			
			jcItems[i][3] = toNumber(qty);
			jcItems[i][5] = eval(jcItems[i][3]*jcItems[i][4]);
			break;
		}
	}
	calcSums();
	if (actionAfterAddItem != "") eval(actionAfterAddItem);
	viewCart(true);
}

function changeShippingType(type){
	jcShipping = new Number(type);
	calcSums();
	if (actionAfterAddItem != "") eval(actionAfterAddItem);
	viewCart();
}

function refreshCart(){
	var header = "";
	var body = "";
	var footer = "";
	var parser;
	var sSelector = "";
	var count = 0;
	
	html = "";
	header = replaceVars(jcHeader);
	footer = replaceVars(jcFooter);
	for (var i=0;i<jcItems.length;i++){
		if (jcItems[i][3] != 0){
			body += jcBody;
			body = replace(body, "[pos]", jcItems[i][0]);
			body = replace(body, "[id]", jcItems[i][1]);
			body = replace(body, "[text]", jcItems[i][2]);
			// body = replace(body, "[qty]", formatNumber(round(new Number(jcItems[i][3]), 2)));
			body = replace(body, "[qty]", jcItems[i][3]);
			body = replace(body, "[sprice]", formatNumber(round(new Number(jcItems[i][4]), 2)));
			body = replace(body, "[tprice]", formatNumber(round(new Number(jcItems[i][5]), 2)));
			if (jcItems[i][6] != null) body = detailLink(body, jcItems[i][6]); else body = replace(body, "[detaillink]", "");			
			if (count%2 == 0 && colorizeStyle != "") 
				body = replace(body, "[colorize]", colorizeStyle);
			else
				body = replace(body, "[colorize]", "");
			count++;
		}
	}
	
	
	sSelector = "<select name=\"shipping\" onchange=\"parent.frames.scripts.changeShippingType(this.options[this.selectedIndex].value);\">";
	jcShipping = (jcShipping >= 0)? jcShipping: defaultShippingType;
	for (var i=0;i<shipping.length;i++){
		if (shipping[i] != ""){
			parser = shipping[i].split("|");
			if (jcShipping == parser[0]){
				sSelector += "<option value=\""+parser[0]+"\" selected>"+parser[2]+"</option>";
				jcShippingCost = new Number(toNumber(parser[1]));
				if (jcShippingCost > 0) {
					if (jcSum > shippingUntil) jcShippingCost = shippingFrom;
					}
				jcShippingText = parser[2];
			}else{
				sSelector += "<option value=\""+parser[0]+"\">"+parser[2]+"</option>";
			}
		}
	}
	sSelector += "</select>";
	
	body = replaceVars(body);
	html = jcPageHeader+header + body + footer+jcPageFooter;	
	html = replace(html, "[shippingSelector]", sSelector);
}

function clearCart(){
	if (confirm(clearCartConfirm)){
		jcItems = new Array();
		calcSums();
		if (actionAfterAddItem != "") eval(actionAfterAddItem);
		viewCart();
	}
}

function clearCartNoCheck(){
		jcItems = new Array();
		calcSums();
		if (actionAfterAddItem != "") eval(actionAfterAddItem);
		viewCart();
}

function viewCart(keep){
	
	if (jcShipping < 0) jcShipping = defaultShippingType;
	calcSums();
	refreshCart();
	
	if (keep == null) keep = false;
	
	if (!keep){
		parent.frames.content.document.clear();
	}
	parent.frames.content.document.write(html);
	parent.frames.content.document.close();
}

function calcSums(){
	var parser;
	
	jcCount = new Number(0);
	jcSum = new Number(0);
	jcShippingCost = new Number(0);
	jcPP = new Number(0);
	jcTotal = new Number(0);
	
	for (var i=0; i<jcItems.length;i++){
		if (jcItems[i][3] != 0){
			jcCount++;
		}
		jcSum += eval(jcItems[i][5]);
	}
	
	for (var i=0;i<shipping.length;i++){
		if (shipping[i] != ""){
			parser = shipping[i].split("|");
			if (jcShipping == parser[0]){
				jcShippingCost = new Number(toNumber(parser[1]));
				jcShippingText = parser[2];
				if (jcShippingCost > 0) {
					if (jcSum > shippingUntil) jcShippingCost = shippingFrom;
					}
				break;
			}
		}
	}
	
	// if (jcSum > shippingUntil) jcShippingCost = new Number(0);
	if (jcSum <= ppUntil) jcPP = new Number(pp);	

	// wenn Abholung, dann keine Verpackung mehr !
	var str = jcShippingText;
	if (str.indexOf("Abholung")>=0){
		jcPP = 0;
		}

	jcTotal = eval(jcSum+jcShippingCost+jcPP);
}

function detailLink(text, dlink){
	if (dlink == null || text == null) return text;
	text = replace(text, "[detaillink]", replace(jcDetailLink, "[dlink]", dlink));
	return text;
}

function quickView(){
	html = "";
	html = jcPageHeader+jcQuickView+jcPageFooter;
	
	html = replaceVars(html);
	
	if (targetForQuickview == "none"){
	}else if (targetForQuickview == "alert"){
		alert(html);
	}else if (targetForQuickview == "window"){
		var w = window.open(null, "quickView", "width=250,height=80,scrollbars=no");
		w.document.write(html);
	}else{
		with(eval(targetForQuickview)){
			document.clear();
			document.write(html);
			document.close();
		}
	}
}

function replaceVars(text){
	if (text == null) text = "";
	if (text == "") return "";
	
	//alert(typeof jcCount);
	text = replace(text, "[count]", formatNumber(round(jcCount, 2)));
	text = replace(text, "[sum]", formatNumber(round(jcSum, 2)));
	text = replace(text, "[shippingCost]", formatNumber(round(jcShippingCost, 2)));
	text = replace(text, "[shippingText]", jcShippingText);
	text = replace(text, "[pp]", formatNumber(round(jcPP, 2)));
	text = replace(text, "[total]", formatNumber(round(jcTotal, 2)));
	text = replace(text, "[currency]", currency);
	text = replace(text, "[minimumorder]", formatNumber(minimumOrder));
	text = replace(text, "[detailLink]", jcDetailLink);
	
	return text;
}


function search(sw){
	var w = window.open("search.htm?"+sw, "search", "width=600, height=400, scrollbars=yes");
}

function showArticle(url){
	eval(targetForViewArticle).location.href=url;
}

function order(windowObj){
	html = "";
	var cartData = "";
	
	if (jcSum < minimumOrder){
		alert(replaceVars(warnLessCartSum));
		if (windowObj != null) windowObj.focus();
		return;
	}

	if (phpMailer==1) {
		sendPHPOrder();
		return;
	}

	html = jcOrder;
	html = jcPageHeader+html+jcPageFooter;	
	html = replace(html, "[enableFormCheck]", enableFormCheck);
	html = replaceVars(html);
	
	parent.frames.content.document.clear();
	parent.frames.content.document.write(html);
	parent.frames.content.document.close();
}

function sendOrder(frm, wObj){
	var eBody = "";
	var crlf = "";

	detectUserAgent();
	crlf = (browser == "msie" || mailer != "")? "%0A": "<br>";

	if (phpMailer==1) {
		sendPHPOrder();
		return;
	}

	eBody = "Bestellung an Shop ID: "+shopId+" : "+crlf+crlf;
	for (var i=0;i<jcItems.length;i++){
		if (jcItems[i][3] > 0){
			eBody += "Position: "+ jcItems[i][0] + crlf +
							"ID: "+jcItems[i][1]+crlf+
							"Text: "+jcItems[i][2]+crlf+
							"Menge: "+formatNumber(round(new Number(jcItems[i][3]),2))+crlf+
							"Einzelpreis: "+formatNumber(round(new Number(jcItems[i][4]), 2))+" "+currency+crlf+
							"Gesamtpreis: "+formatNumber(round(new Number(jcItems[i][5]), 2))+" "+currency+crlf+
							"Detaillink: "+jcItems[i][6]+crlf+crlf;
		}
	}

	eBody += "Summe: "+formatNumber(round(new Number(jcSum), 2))+" "+currency+crlf+
					"Zahlungsart: "+jcShippingText+" ("+formatNumber(round(new Number(jcShippingCost), 2))+" "+currency+")"+crlf+
					"Verpackung: "+formatNumber(round(new Number(jcPP), 2))+" "+currency+crlf+
					"Gesamt: "+formatNumber(round(new Number(jcTotal), 2))+" "+currency+crlf+crlf;

	for (var i=0;i<frm.elements.length;i++){
		if (frm.elements[i].name.substring(0,3) != "btn")
			eBody += frm.elements[i].name + ": " + frm.elements[i].value + crlf;
	}

	// alert(eBody);
	eBody = (browser == "msie" || mailer != "")? eBody: "<html><body>"+eBody+"</body></html>";

	if (mailer != ""){
		frm.shop_email.value = mailAddress;
		frm.body.value = eBody;
		frm.submit();

		jcItems = new Array();
		calcSums();
		if (actionAfterAddItem != "") eval(actionAfterAddItem);
	}else{
		location.href = "mailto:"+mailAddress+"?subject="+escape(mailSubject)+"&body="+eBody;
		jcItems = new Array();
		calcSums();
		if (actionAfterAddItem != "") eval(actionAfterAddItem);
	}

}


function sendPHPOrder(){
	var eBody = "";
	var crlf = "";
	
	detectUserAgent();
	crlf = (browser == "msie" || mailer != "")? "%0A": "<br>";
	
	eBody = "Artikeldaten für Bestellung an Shop "+shopName+" : "+crlf+crlf;
	for (var i=0;i<jcItems.length;i++){
		if (jcItems[i][3] > 0){
			eBody += "Pos "+ jcItems[i][0] + ": \t " + formatNumber(round(new Number(jcItems[i][3]),2))+
							" Stück \t ArtID: "+jcItems[i][1]+
							" \t "+jcItems[i][2]+
							" \t\tEP: "+formatNumber(round(new Number(jcItems[i][4]), 2))+" "+currency+
							" Ges: "+formatNumber(round(new Number(jcItems[i][5]), 2))+" "+currency+crlf;
		}
	}
	eBody += " "+ crlf;
	eBody += "Warenwert     : "+formatNumber(round(new Number(jcSum), 2))+" "+currency+crlf;
	eBody += "Versandkosten : "+formatNumber(round(new Number(jcShippingCost), 2))+" "+currency+crlf;
	eBody += "Verpackung    : "+formatNumber(round(new Number(jcPP), 2))+" "+currency+crlf;
	eBody += "-----------------"+ crlf;
	eBody += "Gesamtbetrag  : "+formatNumber(round(new Number(jcTotal), 2))+" "+currency+crlf;
	eBody += "================="+ crlf+ crlf;
	eBody += "Zahlung/Lieferung: "+jcShippingText+crlf;

	var url = "http://inter-arts.de/shops/cart/iaorder.php?shopid="+shopId+"&body="+eBody+"&summe="+formatNumber(round(new Number(jcSum), 2))+"&zart="+jcShippingText+"&posct="+jcCount;
	parent.frames.content.location.href = url;
	// var ssl = window.open(url, "Bestellung", "width=600,height=450,scrollbars=yes,resizable=yes");
	
}

function clearWindowInstance(){
	if (canDeleteInstance) windowInstance = null;
	canDeleteInstance = true;
}

function toNumber(num){
	if (num == null) num = "";
	if (num == "") num = 0;
	
	num = new String(num);
	num = num.replace(",",".");
	if (isNaN(num)) num = 0;
	return num;
}

function round(number, dig) {
	if ((dig<0) || (dig==null) || (isNaN(dig))) dig=0
	var power = Math.pow(10,dig)
	return Math.round(number*power)/power;
}

function formatNumber(num){
	var str = new String(num);
	
	if (str.indexOf(".")>=0){
		if (str.substring(str.indexOf(".")+1, str.length).length < 2) str += "0";
	}else{
		str += ".00";
	}
	str = str.replace(".",",");
	return str;
}

function replace(string, oldValue, newValue){
	while (string.indexOf(oldValue)>=0){
		string = string.replace(oldValue, newValue);
	}
	return string;
}

function detectUserAgent(){
	var an = window.navigator.appName.toLowerCase();
	
	if (an == "microsoft internet explorer") browser = "msie";
	if (an == "konqueror") browser = "konqueror";
	if (an == "netscape"){
		if (window.navigator.appVersion.substring(0,1) > "4")
			browser = "mozilla";
		else
			browser = "netscape";
	}
	if (an == "opera") browser = "opera";		
}

