function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function catassignerswitcher (name) {
	if (document.getElementById(name).style.display == 'none') {
		MM_swapImage(name+'ar','','/images/arrow_down.gif',1)
		obj = document.getElementsByTagName("div");
		document.getElementById(name).style.display = 'block';
		document.getElementById(name).style.visibility = 'visible';
	} else {
		MM_swapImage(name+'ar','','/images/arrow_right.gif',1)
		obj = document.getElementsByTagName("div");
		document.getElementById(name).style.display = 'none';
	}
}

function switchwarning (name, swid) {
	if (document.getElementById(name).style.display == 'none') {
		document.getElementById(name).style.display = 'block';
		document.getElementById(name).style.visibility = 'visible';
		if (swid) {
			document.getElementById(swid).innerHTML = document.getElementById('closeButton').innerHTML;
		}
	} else {
		document.getElementById(name).style.display = 'none';
		if (swid) {
			document.getElementById(swid).innerHTML = document.getElementById('openButton').innerHTML;
		}
	}
}


function openmediathek (url) {
	var windowprops = "width=890,height=900,location=no,toolbar=no,menubar=no,scrollbars=yes,resizable=yes";
	var media = window.open(url, "Mediathek", windowprops);
	media.focus();
}


function checkInput (field, max, quite) {

	var val = field.value;
	val = val.replace(/,/, ".") *1;
	if (isNaN (val) || (val < 0)) {
		field.value = field.value.replace(/([^0-9]+[,\.]*[^0-9]*)/, "");
	}

	if (val > max && max > 0) {
		field.value = max;
	}
	
}

function clearEverythingElse (except, e, articlenr, wh, amount, pagename, sid) {

	if (e.keyCode == 9 || e.keyCode == 16) {
		return true;
	} else if (e.keyCode == 13) {
		doPriceEvent (articlenr, wh, amount, pagename, sid);
		return false;
	}

	var key = e.keyCode;

	if (key == 188 || key == 190 || (key >= 96 && key <= 105)) {
		for (var i = 0; i < document.f.elements.length; i++) {
			var prefix = "amount_";
			//	reset all amount fields
			if (document.f.elements[i].name.substr (0, prefix.length) == prefix) {
				if (document.f.elements[i].name != except.name) {
					document.f.elements[i].value = '';
				}
				setValue ('unitprice_'+document.f.elements[i].name.substr (prefix.length), 
						  document.helper.defaultemptyperunit.value);
			}
		} // end looping all form elements
	}

}	// end function clearEverythingElse

function requestPrice (url) {
	var d = loadJSONDoc(url);
	d.addCallbacks(setPrice, errorHandler);
}

function requestDelivery (url) {
	var d = loadJSONDoc(url);
	d.addCallbacks(setDelivery, errorHandler);
}

function requestIcode (url) {
	var d = loadJSONDoc(url);
	d.addCallbacks(setIcode, errorHandler);
}


function checkSurfaces (possurfaces, selectedSurface) {

	if (document.f.surfaceselection) {
		var selector = document.getElementsByName("surfaceselection")[0];
		//  remove everything old inside the surface container
		selector.options.length = 0;
		//  default there is no special surface
		add ("surfaceselection", "keine", "0");

		for (var i = 0; i < document.f.elements.length; i++) {
			var prefix = "amount_";
			//  reset all amount fields
			if (document.f.elements[i].name.substr (0, prefix.length) == prefix) {
				var whName  = "wh_" + document.f.elements[i].name.substr (prefix.length);
				var whField = document.getElementById(whName);
				var whValue = whField.value *1;
				var field	= document.f.elements[i];
				var val		= field.value;
				val = val.replace(/,/, ".") *1;
				if (val > 0 && whValue != 0) {
					selector.disabled = true;
					return (false);
				}
			}
		}

		//  does this article allowes special surfaces?
		if (possurfaces != undefined) {
			// yes. So add a entry for every possible surface
			for (var i = 0; i < possurfaces.length; i++) {
				add ("surfaceselection",
						possurfaces[i]["ab_short"],
						possurfaces[i]["ab_bez"]);
			}
			if (selectedSurface != undefined && selectedSurface != 0) {
				for(i=0; i < document.f.surfaceselection.length; i++) {
					if (document.f.surfaceselection.options[i].value== selectedSurface) {
						document.f.surfaceselection.options[i].selected = true;
					}
				}
			}
			// enable the select box
			selector.disabled = false;
			return (true);
		} else {
			//  no. This article has not a special surface. So disable the
			//  select box.
			selector.disabled = true;
			return (false);
		}
	} // end special handling for the surfaceselector

}	// end function checkSurfaces


function setPrice (data) {

	if (data == false || data["unitprice"] == undefined) {
		return false;
	}

	if (warehouse == undefined || warehouse == '') {
		warehouse = data['warehouse'];
	}

	checkSurfaces (data["possurfaces"], data["selectedSurface"]);

	greatPrice = data["Nunitprice"];
	document.f.elements["price_"+warehouse].value = data["Nunitprice"];
	setValue ("unitprice", data["unitprice"]);

}	// end function setPrice


function resetProductView () {

	var nix = document.helper.defaultmoneyempty.value;

	var prefix = "amount_"; // amount_  warehouse_104 = --,--
	for(var i=0; i < document.f.elements.length; i++){
		//	reset all amount fields
		if (document.f.elements[i].name.substr (0, prefix.length) == prefix &&
			document.f.elements[i].value == '') {
	
			document.f.elements[i].value = '';
			setValue ('unitprice_'+document.f.elements[i].name.substr (prefix.length), 
			 		  	 document.helper.defaultemptyperunit.value);
			
		}
	}

}


function changePayment () {

	var skontocent	= document.helper.skontocent.value *1;
    var material    = document.helper.material.value *1;
    var delivery    = document.helper.delivery.value *1;

	var payment = radioVal (document.f.payment);
	var skonto = false;

	if (payment == 'customerTSG') {
		skonto = true;
	} else if (payment == 'customer') {
		skonto = true;
	} else if (payment == 'creditcard') {
		skonto = true;
	} else if (payment == 'invoice') {
		skonto = false;
	}

	var total = material + delivery;
	if (skonto == true) {
		total = material * skontocent * -1;
	} else {
		total = 0;
	}

	setValue ("totalCostsPayment", getFormatedPrice (total));	
	setHelper ("skonto", skonto);
	setHelper ("payment", total);

	calcOverview ();

}	// end function changePayment


function changeDelivery () {

	var shipcosts	= document.helper.shipcosts.value *1;
	var loadcosts	= document.helper.loadcosts.value *1;
	var orgacosts	= document.helper.orgacosts.value *1;
	var nix			= document.helper.defaultmoneyempty.value;

	delivery = radioVal (document.f.delivery);
	unloader = document.f.unloading.checked;

	var total = 0;

	if (delivery == 'jonastone') {
		total = shipcosts + orgacosts;
		if (unloader != true) {
			total = total + loadcosts;
		}
		setValue("orgaDelivery", getFormatedPrice(total));
//		document.getElementById('contactData').style.display = "block";
	} else {
//		document.getElementById('contactData').style.display = "none";
		setValue("orgaDelivery", nix);
	}

	setHelper("delivery", total);

	total = getFormatedPrice(total);
	setValue("totalCostsDelivery", total);

	changePayment ();
	calcOverview ();

}	// end function changeDelivery


function disableEnterKey(e, site, sid) {
	var key;

	if(window.event) {
		// IE
		key = window.event.keyCode;
	} else {
		// FF
		key = e.which;
	}

	if (key == 13) {
		getDelivery(site, sid);
		return false;
	} else {
		return true;
	}
}

function checkAddToBasket (msg) {

	var field = "amount_";
	for (var i=0; i < document.f.elements.length; i++) {
		if (document.f.elements[i].name.substr(0, field.length) == field &&
            (document.f.elements[i].value != '')) {
			return true;
		}
	}
 
	alert(msg);
	return false;
}


function getFormatedPrice (amount) {

	var curPoint		= document.helper.curpoint.value;
	var curDecimals		= document.helper.curdecimals.value;
	var curSep			= document.helper.curseperator.value;
	var curSymbol		= document.helper.cursymbol.value;
	var curLanguage 	= document.helper.curlanguage.value;

	amount  = number_format(amount, curDecimals, curPoint, curSep);

	if (curLanguage == "en_gb") {
		amount = curSymbol + " " + amount;	
	} else {
		amount += " " + curSymbol;	
	}
	
	return (amount);
}


function radioVal (rObj) {
	for (var i=0; i<rObj.length; i++) {
		if (rObj[i].checked) {
			return (rObj[i].value);
		}
	}
	return false;
}


function setValue (name, value) {
	var tmp = document.getElementById(name);
	if (tmp != null) {
		tmp.innerHTML = value;
	}
}

function setHelper (name, value, suffix) {
	if (suffix == '' || suffix == undefined) {
        var helper = document.helper;
	} else {
		var helper = document.forms['helper'+suffix];
	}
	for (var i=0; i < helper.length; i++) {
		if (helper[i].name == name) {
			helper[i].value = value;
			return true;
		}
	}
	return false;
}

function getDelivery (pagename, sid) {

	var editmode = false;

	// get the country id
	if (document.f.country) {
		var countryid = document.f.country.value;
	} else {
		for (var i = 0; i < document.f.countries.length; i++) {
			if (document.f.countries.options[i].selected == true) {
				var countryid = document.f.countries.options[i].value;
			}
		}
	}

	// get the user zip code
	var userzip = document.f.zipcode.value;
	var sub = userzip.substr(0, 2);

	if (sub == '67' || sub == '68' || sub == '69') {
		document.getElementById('deliverymannheim').style.display = 'inline';
	} else {
		document.getElementById('deliverymannheim').style.display = 'none';
	}

	url = "/" + pagename +
		"/country-" + countryid +
		"/zip-" + userzip +
		"/edit-" + editmode +
		"/?sid=" + sid;
	requestDelivery (encodeURI(url));

	return (true);

}	// end getDelivery


function checkIcode (pagename, sid) {

	// get the icode
	var icode = document.f.icode.value;

	// check icode length
	if (icode.length != 8) {
		setHelper ("icodeamount", "0");
		document.getElementById('icodeholder').style.display = 'none';
		document.getElementById('icodeholder').style.visibility = 'hidden';

		removeElementClass ('icodeinput', "textboxmiddle_error");
		removeElementClass ('icodeinput', "textboxmiddle");
		addElementClass ('icodeinput', "textboxmiddle");
		$('successholder').innerHTML ="";

		calcOverview ();
		return false;
	}

	var url =	"/" + pagename +
				"/icode-" + icode +
				"/?sid=" + sid;
	requestIcode (encodeURI(url));

	return (true);

}	// end checkIcode

function setIcode (data) {

	if (data["correct"] == true) {
		$('successholder').innerHTML ="<img src=\"/images/si_check.gif\">";
		removeElementClass ('icodeinput', "textboxmiddle_error");
		addElementClass ('icodeinput', "textboxmiddle");
		setHelper ("icodeamount", data["amount"]);
		document.getElementById('icodeholder').style.display = 'block';
		document.getElementById('icodeholder').style.visibility = 'visible';
	} else {
		setHelper ("icodeamount", "0");
		addElementClass ('icodeinput', "textboxmiddle_error");
		$('successholder').innerHTML ="<img src=\"/images/si_wrong.gif\">";
		document.getElementById('icodeholder').style.display = 'none';
		document.getElementById('icodeholder').style.visibility = 'hidden';
	}

	var payment     = document.helper.payment.value *1;
	var material    = document.helper.material.value *1;
	var delivery	= document.helper.delivery.value *1;
	var credit		= document.helper.credit.value *1;
	var icode       = document.helper.icodeamount.value *1;

//    sum = getFormatedPrice(payment + delivery + material - credit - icode);
//    setValue("totalCostsAll", sum);
    setValue("totalCostIcode", "-" + getFormatedPrice(icode));

	calcOverview ();

	return (true)

}	// end setIcode


function calcOverview () {

	var payment     = document.helper.payment.value *1;
	var material    = document.helper.material.value *1;
	var delivery	= document.helper.delivery.value *1;
	var credit		= document.helper.credit.value *1;
	var icode       = document.helper.icodeamount.value *1;

	sum = material + delivery + payment - credit - icode;

	if (sum < 0) {
		sum = 0;
		credit = payment + delivery + material - icode;
	}

	setValue("totalCostsDelivery", getFormatedPrice(delivery));
	setValue("totalCostsPayment", getFormatedPrice(payment));
	setValue("totalCostIcode", "-" + getFormatedPrice(icode));
	setValue("totalCredit", "-" + getFormatedPrice(credit));
	setValue("totalCostsAll", getFormatedPrice(sum));
	
	return (true)

}	// end function calcOverview
	

function setDelivery (data) {

	if (data["shipping"] != undefined) {
		setHelper("shipcosts", data["shipping"]);
		document.f.delivery.disabled = false;
	}

	if (data["unloader"] != undefined) {
		setHelper("loadcosts", data["unloader"]);
	}

	if (data["orga"] != undefined) {
		setHelper("orgacosts", data["orga"]);
	}

	if (data["invoice"] != undefined) {
		setHelper("invoicecosts", data["invoice"]);
	}

	if (data["creditcard"] != undefined) {
		setHelper("creditcardcosts", data["creditcard"]);
	}


	for (var i=0; i<document.f.delivery.length; i++) {
		document.f.delivery[i].disabled = false;
	}

	for (var i=0; i < document.f.payment.length; i++) {
		document.f.payment[i].disabled = false;
	}

	document.f.unloading.disabled = false;

	changeDelivery ();
	changePayment ();

	return (true);

}	// end function setDelivery


var warehouse = '';
var greatArticle = '';
var greatPrice = 0;

function doRecalc (pagename, sid) {

	if (warehouse == '') {
		return false;
	}

	var x = document.getElementById('amount_'+warehouse);
	amount = x.value;
	doPriceEvent (greatArticle, warehouse, amount, pagename, sid);
	return true;

}	// end method doRecalc

function changeAmount (articlenr, wh, amount, pagename, sid, todo, max) {

	var pdiv		= document.helper.paletteDivisible.value;
	var pamount		= document.helper.NpaletteAmount.value *1;
	var divA		= document.helper.NdivAmount.value *1;
	var field		= '';
	var fieldname	= "amount_"+wh;

	warehouse = wh;
	greatArticle = articlenr;

	// find the field the value must be changed
	for (var i=0; i<document.f.elements.length; i++) {
		if (document.f.elements[i].name == fieldname) {
			field = document.f.elements[i];
			resetProductView();
			break;
		}
	}

	if (field != '') {
		var val = field.value;
		val = val.replace(/,/, ".") *1;
		if (todo == 'plus') {
			if (pdiv == 'no') {
				old = Math.round(val / pamount);
				field.value = formatAmount((old + 1) * pamount);
			} else {
				field.value = formatAmount(val + divA);
			}
		} else {
			if (pdiv == 'no') {
				old = Math.round(val / pamount);
				if (old - 1 == 0) {
					field.value = '';
				} else {
					field.value = formatAmount((old - 1) * pamount - 0.1);
				}
			} else {
				if (val - 1 == 0) {
					field.value = '';
				} else {
					field.value = formatAmount(val - divA);
				}
			}
		}
		checkInput(field, max, true);
	}

	doPriceEvent (articlenr, wh, field.value, pagename, sid);
	
}

function doPriceEvent (articlenr, wh, amount, pagename, sid) {

	if (isNaN (amount) || (amount <= 0)) {
		resetProductView();
	}

	if (warehouse != wh && warehouse != '') {
		warehouse = wh;
		resetProductView ();
	}

	var pdiv	= document.helper.paletteDivisible.value;
	var divA	= document.helper.NdivAmount.value *1;
	var pamount	= document.helper.NpaletteAmount.value *1;
	var val = 0;

	for (var i = 0; i < document.f.elements.length; i++) {
		var searchname = "amount_" + wh;
		if (document.f.elements[i].name == searchname) {
			var max = document.getElementById("max_"+wh).value;
			field = document.f.elements[i];
			val = field.value;
			val = val.replace(/,/, ".") *1;
			if (pdiv == 'no') {
				if (val != 0) {
					var old = Math.round(val / pamount);
					var neu = old * pamount;
					var rest = neu - val;
					if (neu >= max && max > 0) {
						neu = max;
					}
					field.value = formatAmount(neu);
				} else {
					field.value = 0;
				}
			} else {
				if (val % divA != 0) {
					var neu = Math.round(val / divA) * divA;
					if (neu >= max && max > 0) {
						neu = max;
					}
					field.value = formatAmount(neu);
				}
			}	
		}
	} // end looping all form elements

    var prefix = "amount_";
    var amount = 0;
    var wareh = wh;

    for (var i=0; i<document.f.elements.length; i++) {
        if (document.f.elements[i].name.substr (0, prefix.length) == prefix) {
			val = document.f.elements[i].value;
			val = getNumber(val);
			wh = document.f.elements[i].name.substr(prefix.length);
			max = getNumber(document.getElementById("max_"+wh).value);
			if (val > 0) {
				wareh = wh;
				if (val >= max && max > 0) {
					val = max;
				}
//				amount += val;
				amount += Math.round(val / divA) * divA;
			} else if (warehouse == '') {
				wareh = wh;
			}
		}
    }
	wh = wareh;

	//	saving the last article number 
	greatArticle = articlenr;
	var surface = '';

	if (document.f.surfaceselection) {
		for (var i = 0; i < document.f.surfaceselection.length; i++) {
			if (document.f.surfaceselection.options[i].selected == true) {
				surface = document.f.surfaceselection.options[i].value
			}
		}
	}

	warehouse = wh;


	url = "/" + pagename + 
		  "/articlenr-" + articlenr + 
		  "/warehouse-" + wh + 
		  "/amount-" + amount +
		  "/surface-" + surface + 
		  "/edit-" + editmode + 
		  "/?sid=" + sid;
	requestPrice(encodeURI(url));

	return (false);
	
}

// helper to fill the surface selection field
var Wert = 1;
function add (elementname, name, value) {
	var Auswahlliste = document.getElementsByName(elementname)[0];
	var Eintrag = document.createElement("option");
	//  Eintrag.text = document.getElementsByName("Eingabe")[0].value;
	Eintrag.text = name;
	Eintrag.value = value;
	var FolgendeOption = null;
	if (document.all)
		FolgendeOption = Auswahlliste.length;
	Auswahlliste.add(Eintrag, FolgendeOption);
	Wert += 1;
}

function getNumber (orgval) {
	if (isNaN(orgval)) {
		val = orgval.replace(/,/, ".");
	} else {
		val = orgval;
	}
	val = parseFloat(val);
	val = val * 100;
	val = Math.round(val);
	val = val / 100;
	if (isNaN(val)) {
		return (orgval);
	} else {
		return (val);
	}
}


function errorHandler( type, error ) {
/*
	var msg = "Something went horribly wrong ...\n" +
        error.message;
    alert( msg );
*/
}

function dumpData( type, data, evt ) {
    var msg = "Data dump:\n" + data;
    alert( msg );
}

function formatAmount (amount) {

	if (amount == 0) {
		return ('');
	}

	amount = amount * 100;
	amount = Math.round(amount);
	amount = amount / 100;
	amount = amount.toString();
	amount = amount.replace(/\./, ",");
	return (amount);

}

function number_format (number, laenge, sep, th_sep ) {
/*
	if (number == 0) {
		return (0);
	}
*/
	number = Math.round( number * Math.pow(10, laenge) ) / Math.pow(10, laenge);
	str_number = number+"";
	arr_int = str_number.split(".");
	if (!arr_int[0]) arr_int[0] = "0";
	if (!arr_int[1]) arr_int[1] = "";

	if (arr_int[1].length < laenge) {
		nachkomma = arr_int[1];
		for(i=arr_int[1].length+1; i <= laenge; i++){  nachkomma += "0";  }
		arr_int[1] = nachkomma;
	}

	if (th_sep != "" && arr_int[0].length > 3) {
		Begriff = arr_int[0];
		arr_int[0] = "";
		for (j = 3; j < Begriff.length ; j+=3) {
			Extrakt = Begriff.slice(Begriff.length - j, Begriff.length - j + 3);
			arr_int[0] = th_sep + Extrakt +  arr_int[0] + "";
		}
		str_first = Begriff.substr(0, (Begriff.length % 3 == 0)?3:(Begriff.length % 3));
		arr_int[0] = str_first + arr_int[0];
	}
	return arr_int[0]+sep+arr_int[1];
}

function orderCalc () {

    var prefix = "order";
	var sum = 0;
	var price = parseFloat(document.f.Npriceper.value);
    for (var i=0; i<document.f.elements.length; i++) {
        if (document.f.elements[i].name.substr (0, prefix.length) == prefix &&
				document.f.elements[i].checked) {
			sum += 1;
		}
	}
	var subtotal = sum * price;
	// total = number_format (subtotal, 2, ",", ".");

	setValue ('samplesAmount', sum);
	// setValue ('samplesPrice', total);
	setValue ('samplesAmount0', sum);
	// setValue ('samplesPrice0', total);

	// total = number_format (subtotal, 2, ",", ".");
	total = getFormatedPrice (subtotal);
	setValue ('samplesPrice', total);
	setValue ('samplesPrice0', total);

}

function switchCDOrder (status) {
	
	var r = document.getElementById ('cdoptionholder');
	var r_0 = document.getElementById ('cdoptionholder0');

	if (!r || !r_0) {
		return (false);
	}

	if (status == true) {
		r.style.display = "block";
		r_0.style.display = "block";
	} else {
		r.style.display = "none";
		r_0.style.display = "none";
	}
	
}



function checkOrderSamplesSubmit (error) {

    var prefix = "order";
    var sum = 0;

    for (var i=0; i<document.f.elements.length; i++) {
        if (document.f.elements[i].name.substr (0, prefix.length) == prefix &&
                document.f.elements[i].checked) {
            sum += 1;
        }
    }

	//	check if the order cd option is set
	var cd = document.getElementById ('cdxxxxxx');
	if (cd) {
		if (cd.checked) {
			return (true);
		}
	}

	if (sum == 0) {
		return (false);
	} else {
		return (true);
	}

}


function hideSubmitter (id) {
	var x = document.getElementById (id);
	if (!x) {
		//	handle
	}
	x.style.display = "none";
}

var submitable = true;

//	called in the "last" step of a sample order
function checkFinalSampleOrder () {
	if (submitable) {
		submitable = false;

		hideSubmitter ('nb01');
		hideSubmitter ('nb02');
		
	} else {
		return (false);
	}

}


function launchProductTab (tabnumber) {
	var tabcount = 3 
	for (var i = 0; i < tabcount; i++) { 
		var t = document.getElementById ('ptab_f_'+i); 
		var tt =  document.getElementById ('ptab_'+i); 
		if (i == tabnumber) { 
			t.style.display = 'block'; 
			t.className = 'ProductInfos show'; 
			tt.className = 'active'; 
		} else { 
			t.style.display = 'none'; 
			t.className = 'ProductInfos show';     
			tt.className = '';               
		} 
	} 
}

function js_pricebubble () {
	
	this.createDomElements = function () {

		if (!$('jspriceinformation')) {
			return (false);
		}

		//	create the bubble element
		var b = getElementsBySelector ('body')[0];
		var d = minikit.createDOM ('DIV', 
								   {'id': 'jsbubble',
									'class': 'priceexplanationbubble',
									'style': 'display: none;width: 360px; height: 100px;'});

		var d1 = minikit.createDOM ('DIV', {'style': 'background-color:white; border: 1px solid #828282; border-bottom: 0; padding: 5px;'});
		var d2 = minikit.createDOM ('DIV', {'style': 'background: url(/images/pricebubble_bottom.gif); height: 24px;'});
		d2.innerHTML = "&nbsp;";
		//	try to find the span with the text to display
		var t = $('jspriceinformation');
		var t1 = t.cloneNode (true);
		t1.id = "_"+t.id;
		t1.style.marginBottom = "10px";
		d1.appendChild (t1);

		d.appendChild (d1);
		d.appendChild (d2);

		b.appendChild (d);
		var a = minikit.createDOM ('a', {'href': '#'});
		a.innerHTML = 'Schließen';
		d1.appendChild (a);

		connect (a, 'onclick', function (evt) {
			evt.stop ();
			$('jsbubble').style.display = "none";
		});

		connect (d, 'onclick', function () {
			$('jsbubble').style.display = "none";
		});
		return (true);
	};


	this.connectStars = function () {
		
		if (!this.createDomElements ()) {
			//	error creating all the stuff we need
			return (false);
		}

		
		var els = getElementsBySelector ('span.redstar');
		forEach (els, function (e) {		
			connect (e, 'onmouseover', function (evt) {
				var pos = minikit.getElementPosition (evt.src ());
				var dim = minikit.getElementDimensions ($('jsbubble'));
				$('jsbubble').style.top = parseInt(pos.y-dim.h - 10)+"px";
				$('jsbubble').style.left = (pos.x-204)+"px";
				$('jsbubble').style.position = 'absolute';
				$('jsbubble').style.display = "block";
			});
		});
		
		/*
		forEach (els, function (e) {
			connect (e, 'onmouseout', function () {
				$('jsbubble').style.display = "none";
			});
		});
		*/

	};

};

startList = function() {
	if (document.all && document.getElementById) {
		navRoot = document.getElementById("nav");
		if (navRoot) {
			for (i=0; i<navRoot.childNodes.length; i++) {
				node = navRoot.childNodes[i];
				if (node.nodeName=="LI") {
					node.onmouseover=function () {
						this.className+=" over";
					}
					node.onmouseout=function() {
						this.className=this.className.replace(" over", "");
					}
   				}
  			}
		}
 	}
}
window.onload=startList;

var js_pbubble = new js_pricebubble ();

addLoadEvent (function () {
	//js_pbubble.createDomElements ();
	js_pbubble.connectStars ();
});


