//function _(id) { return document.getElementById(id); }

function _(id, Doc) {
	return typeof id == 'string' ? (Doc||document).getElementById(id) : id == 'object' ? id : null;
};

function openCenteredWindow(url, n, w, h, s) {
	var l = (screen.availWidth / 2) - (w / 2);
	var t = (screen.availHeight / 2) - (h / 2);
	return openWindow(url, n, w, h, l, t, s);
}

function openWindow(url, n, w, h, l, t, s) {
	if(l == undefined) l = 200;
	if(t == undefined) t = 100;
    if(s == undefined) s = 'no';

	var params = new Array();

	if(w > 0) params.push('width='  + w);
	if(h > 0) params.push('height=' + h);
	params.push('left=' + l);
	params.push('top='  + t);

	params.push('location=no');
	params.push('statusbar=no');
	params.push('scrollbars=' + s);

	return window.open(url, n, params.join(','));
}

// Bestellformular abschicken
function action(form, id, action, target)
{
	if(form == 'cartform' && id == 'CartAction' && action == ''){
	}else{
		document.getElementById(id).setAttribute('value', action);
		if(id == 'CheckoutAction'){
		  var elms = document.getElementsByName('data[Checkout][action]');
		  for (var i=0;i<elms.length;i++){
		      elms[i].value = action;
		  }
		}
		

		var frm = document.getElementById(form);
		if(target != undefined) {
			frm.setAttribute('action', target);
		}
		frm.submit();
	}
}

// Lieferadresse ausgrauen	#1
function disable()
	{
	if (document.getElementById('CheckoutUseBillingAddress').checked)
		{
		document.getElementById('ShippingAddressSalutation').disabled=false;
		document.getElementById('ShippingAddressForename').disabled=false;
		document.getElementById('ShippingAddressSurname').disabled=false;
		document.getElementById('ShippingAddressStreet').disabled=false;
		/*document.getElementById('ShippingAddressStreetNr').disabled=false;*/
		document.getElementById('ShippingAddressZipcode').disabled=false;
		document.getElementById('ShippingAddressCity').disabled=false;
		document.getElementById('ShippingAddressCountry').disabled=false;
		}
	else
		{
		document.getElementById('ShippingAddressSalutation').disabled=true;
		document.getElementById('ShippingAddressForename').disabled=true;
		document.getElementById('ShippingAddressSurname').disabled=true;
		document.getElementById('ShippingAddressStreet').disabled=true;
		/*document.getElementById('ShippingAddressStreetNr').disabled=true;*/
		document.getElementById('ShippingAddressZipcode').disabled=true;
		document.getElementById('ShippingAddressCity').disabled=true;
		document.getElementById('ShippingAddressCountry').disabled=true;
		}
	}

// Lieferadresse ausgrauen #2
function disable_update()
	{
	document.getElementById('ShippingAddressSalutation').disabled=true;
	document.getElementById('ShippingAddressForename').disabled=true;
	document.getElementById('ShippingAddressSurname').disabled=true;
	document.getElementById('ShippingAddressStreet').disabled=true;
	document.getElementById('ShippingAddressStreetNr').disabled=true;
	document.getElementById('ShippingAddressZipcode').disabled=true;
	document.getElementById('ShippingAddressCity').disabled=true;
	document.getElementById('ShippingAddressCountry').disabled=true;
	}

// Produktansicht: Bild austauschen
function swap(id, fullsizeWidth, fullsizeHeight, zoomWidth, zoomHeight)
	{
	document.getElementById('fullsizeImage').src = '/images/' + id + '/' + fullsizeWidth + 'x' + fullsizeHeight + '.jpg';
	//document.getElementById('fullsizeLink1').setAttribute('onClick', 'zoom(' + id + ', ' + zoomWidth + ', ' + zoomHeight + ');');
	//document.getElementById('fullsizeLink2').setAttribute('onClick', 'zoom(' + id + ', ' + zoomWidth + ', ' + zoomHeight + ');');
	}

function swapProductImage(productId, imageName, fileId, zoomWidth, zoomHeight, fullsizeWidth, fullsizeHeight)
{
    _('fullsizeImage').src = '/images/' + fileId + '/' + fullsizeWidth + 'x' + fullsizeHeight + '.jpg';
    func = new Function('openCenteredWindow(\'/pages/productImagePopup/' + productId + '/' + imageName + '\', \'ProductImagePopup\', ' + zoomWidth + ', ' + zoomHeight + ');return false;');
    _('fullsizeLink1').onclick = func;
    _('fullsizeLink2').onclick = func;
};

// Produktansicht: Bild aufpoppen
function zoom(id, width, height)
	{
	window.open('/images/' + id + '/' + width + 'x' + height + '.jpg', 'PopUp', 'left=300, top=50,width=' + width + ',height=' + height + ',status=no,scrollbars=no,resizable=yes');
	}

// IE form submit ohne submit-Button fixen
function addInputSubmitEvent(form, input) {
    input.onkeydown = function(e) {
        e = e || window.event;
        if (e.keyCode == 13) {
            form.submit();
            return false;
        }
    }
}

window.onload = function() {
    var forms = document.getElementsByTagName('form');

    for (var i=0;i < forms.length;i++) {
        var inputs = forms[i].getElementsByTagName('input');

        for (var j=0;j < inputs.length;j++)
            addInputSubmitEvent(forms[i], inputs[j]);
    }
}

// position of the tooltip relative to the mouse in pixel //
var offsetx = 20;
var offsety =  8;

function newelement(newid)
{
    if(document.createElement)
    {
        var el = document.createElement('div');
        el.id = newid;
        with(el.style)
        {
            display = 'none';
            position = 'absolute';
        }
        el.innerHTML = '&nbsp;';
        document.body.appendChild(el);
    }
}
var ie5 = (document.getElementById && document.all);
var ns6 = (document.getElementById && !document.all);
var ua = navigator.userAgent.toLowerCase();
var isapple = (ua.indexOf('applewebkit') != -1 ? 1 : 0);
function getmouseposition(e)
{
    if(document.getElementById)
    {
        var iebody=(document.compatMode &&
            document.compatMode != 'BackCompat') ?
                document.documentElement : document.body;
        pagex = (isapple == 1 ? 0:(ie5)?iebody.scrollLeft:window.pageXOffset);
        pagey = (isapple == 1 ? 0:(ie5)?iebody.scrollTop:window.pageYOffset);
        mousex = (ie5)?event.x:(ns6)?clientX = e.clientX:false;
        mousey = (ie5)?event.y:(ns6)?clientY = e.clientY:false;

        var lixlpixel_tooltip = document.getElementById('tooltip');
        lixlpixel_tooltip.style.left = (mousex+pagex+offsetx) + 'px';
        lixlpixel_tooltip.style.top = (mousey+pagey+offsety) + 'px';
    }
}
function tooltip(tip)
{
    if(!document.getElementById('tooltip')) newelement('tooltip');
    var lixlpixel_tooltip = document.getElementById('tooltip');
    lixlpixel_tooltip.innerHTML = tip;
    lixlpixel_tooltip.style.display = 'block';
    document.onmousemove = getmouseposition;
}
function exit()
{
    document.getElementById('tooltip').style.display = 'none';
}

function checkAll(formId, fieldName, state) {
    var frm = document.getElementById(formId);

    var inputs = frm.getElementsByTagName('input');

    for(var i=0; i < inputs.length; i++) {
        var inp = inputs[i];
        if(inp.name != fieldName) continue;

        inp.checked = state;
    }
}

function clearValue(id, fieldValue)
	{
	if (this.document.getElementById(id).value == fieldValue)
		{
		this.document.getElementById(id).value = '';
		}
	}

function toggleOrderInformation()
	{
	if (this.document.getElementById('order_information_content').getAttribute('style') == 'display: none;')
		{
		this.document.getElementById('toggle_link').innerHTML = '- ausblenden';
		this.document.getElementById('order_information_content').setAttribute('style', 'display: block;');
		}
	else
		{
		this.document.getElementById('toggle_link').innerHTML = '+ anzeigen';
		this.document.getElementById('order_information_content').setAttribute('style', 'display: none;');
		}
	}

function checkCartIfNull(){
	var elements = document.getElementById("cart_content").getElementsByTagName("input");
	var i=0;
	var bDoAlert = false;
	for (i=0;i< elements.length;i++) {
		if(elements[i].value == 0){
			bDoAlert=true;
		}
	}
	if(bDoAlert == true){
		var choice = confirm("Bitte beachten Sie, dass durch die Menge 0 auch alle eventuell ausgewÃ¤hlten ZubehÃ¶rartikel aus dem Warenkorb entfernt werden.")
		if(choice == false){
			return false;
		}
	}
	action('cartform', 'CartAction', 'update');
}

function ConfirmRemove(posid){
	var choice = confirm("MÃ¶chten Sie wirklich den gewÃ¤hlten Artikl lÃ¶schen?\nBitte beachten Sie, dass hierdurch auch alle eventuell ausgewÃ¤hlten ZubehÃ¶rartikel aus dem Warenkorb entfernt werden.")
	if(choice == false){
		return false;
	}else{
		location.href = "/cart/remove/product/" + posid;
	}
}

document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
};

function real_round (x) {
  var k = (Math.round(x * 100) / 100).toString();
  k += (k.indexOf('.') == -1)? '.00' : '00';
  return k.substring(0, k.indexOf('.') + 3);
}

function refreshPrice(price, attId, val){

  // GET/SET QUANTITY
	var o_quantity = parseInt(document.getElementById('CartQuantity').value);
	if(!o_quantity){ o_quantity = 1; }
  // PREPARE DATA
	var o_currency = plainPrice.split(' ');
  // PREPARE PRICE
	var o_price = o_currency[1].replace('.','');
		o_price = parseFloat(o_price.split(',').join('.'));
  // SEPARATE CURRENCY
		o_currency = o_currency[0];
  // SHIPPING PREPARE DATA
	var s_currency = plainShip.split(' ');
  // SHIPPING PREPARE PRICE
	var s_price = s_currency[1].replace('.','');
		s_price = parseFloat(s_price.split(',').join('.'));
  // SHIPPING SEPARATE CURRENCY
		s_currency = s_currency[0];
  // CYCLE ATTRIBUTES
	var req_vals = new Array();
	var req_ship = new Array();
	var i = 0;
	for (var att in actAttId) {
		var o_sel = document.getElementById('attribute_values_'+att);
		var v_sel = o_sel.options[o_sel.selectedIndex].value;
		req_vals[i] = attrs[att][v_sel];
		req_ship[i] = shipp[att][v_sel];
		i++;
	}
  // CALCULATE FULL PRICE
	var t_price = o_price;
	for (var prc in req_vals) {
		t_price += req_vals[prc];
	}
  // APPLY QUANTITY
		t_price *= o_quantity;
  // ADD SHIPPING
	var p_price = s_price;
	for (var ship in req_ship) {
		p_price += req_ship[ship];
	}
  // MULTIPLY SHIPPING IF SET
	if (shipMultiply && baseMultiply) {
		p_price *= o_quantity;
	}
	if (shipMultiply && !baseMultiply) {
		p_price -= s_price;
		p_price *= o_quantity;
		p_price += s_price;
	}
	p_price = real_round(p_price);
  // CUT PRICE
	var x_price = String(t_price).split('.');
	if (!x_price[1]) { x_price[1] = '00'; }
	if (x_price[1].length==1) { x_price[1] = x_price[1]+'0'; }
  // SET NEW PRICE
	var price_cont = document.getElementsByClassName('price')[0];
		price_cont.innerHTML = o_currency+' '+Trenner(x_price[0])+','+x_price[1];
  // SHIPPING CUT PRICE
	var sp_price = String(p_price).split('.');
	if (!sp_price[1]) { sp_price[1] = '00'; }
	if (sp_price[1].length==1) { sp_price[1] = sp_price[1]+'0'; }
  // SHIPPING SET NEW PRICE
	var ship_cont = document.getElementById('shipPrice');
		ship_cont.innerHTML = s_currency+' '+Trenner(sp_price[0])+','+sp_price[1];
}

function Trenner(number) {
	// Info: Die '' sind zwei Hochkommas
	number = '' + number;
	if (number.length > 3) {
		var mod = number.length % 3;
		var output = (mod > 0 ? (number.substring(0,mod)) : '');
		for (i=0 ; i < Math.floor(number.length / 3); i++) {
			if ((mod == 0) && (i == 0))
				output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
			else
				// hier wird das Trennzeichen festgelegt mit '.'
				output+= '.' + number.substring(mod + 3 * i, mod + 3 * i + 3);
		}
		return (output);
	}else return number;
}

