function newImage(arg)
{
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages()
{
	if (document.images) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

function helpWindow(content)
{
	var iTop  = (screen.height - 250) / 2;
	var iLeft = (screen.width  - 400) / 2;

	var sOptions = "toolbar=no";
	sOptions += ",width=" + 400;
	sOptions += ",height=" + 250;
	sOptions += ",resizable=yes";
	sOptions += ",scrollbars=" + "yes";
	sOptions += ",left=" + iLeft;
	sOptions += ",top=" + iTop;

	var HelpWindow = window.open("help.php?id="+content, "Hilfe", sOptions);
	HelpWindow.focus();
	return false;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

var submitDisabled = false;

function disableSubmit(form, element)
{

    /*hideShowLayer('', 'formsubmitlayer');*/

    //document.forms[form].elements[element].disabled = "true";
    // knopf abschalten können wir nicht, da sonst der wert nicht mehr
    // mitgeschickt wird und wir im script eventuell nicht mehr unterscheiden
    // können, welcher knopf gedrückt wurde - also dieser kleine Trick:
    if (submitDisabled) {
        alert('Bitte nicht mehrfach abschicken!');
        return false;
    }
    submitDisabled = true;
	return true;
}

function countText(form, element, elementprint, max)
{
    //document.forms[form].elements[elementprint].disabled = "true";
    if (document.forms[form].elements[element].value.length > max) {
        document.forms[form].elements[element].value = document.forms[form].elements[element].value.substring(0, max);
    } else {
        document.forms[form].elements[elementprint].value = max - document.forms[form].elements[element].value.length;
    }
}



function change_data(selObj, id)
{
	if (typeof(selObj)!="object") selObj = document.getElementById(selObj);

	var types = new Array('MAIL', 'UPLOAD', 'FTP', 'POST');
	for (var i=0; i < types.length; i++) {
		var display = "datadisplay_" + types[i] + "_" + id;
		display = document.getElementById(display).style;
		display.display = "none";
	}

	var type = selObj.options[selObj.selectedIndex].value;
	var display = "datadisplay_" + type + "_" + id;
	display = document.getElementById(display).style;
	display.display = "block";
	document.cookie = "cartdata["+id+"]=" + type;

	if (type != 'UPLOAD') {
		var date = document.getElementById( "datadate_" + id + "_" + type.toLowerCase() ).value;
		var time = document.getElementById( "datatime_" + id + "_" + type.toLowerCase() ).value;
		document.cookie = "cartdatadate["+id+"]=" + date;
		document.cookie = "cartdatatime["+id+"]=" + time;
	}
}

/*
function change_payment(obj)
{
	if (!maxPayment) return;
	if (!obj || !obj.value) return;

	for (var i=1; i <= maxPayment; i++) {
		var display = "ship" + i;
		display = document.getElementById(display).style;
		display.display = "none";
	}

	var display = "ship" + obj.value;
	display = document.getElementById(display).style;
	display.display = "block";
	// lastschrift eingabe
	// 3 ist die ID von Lastschrift
	if (obj.value == 3) {
		swapDisplay("bankaccount", true);
	} else {
		swapDisplay("bankaccount", false);
	}
	return true;
}*/

function change_payment(obj)
{
	if (!payments || !payments.length) return;
	if (!obj || !obj.value) return;

	for (var i=1; i < payments.length; i++) {
		var display = "ship" + payments[i];
		display = document.getElementById(display).style;
		display.display = "none";
	}

	var display = "ship" + obj.value;
	display = document.getElementById(display).style;
	display.display = "block";
	// lastschrift eingabe
	// 3 ist die ID von Lastschrift
	if (obj.value == 3) {
		swapDisplay("bankaccount", true);
	} else {
		swapDisplay("bankaccount", false);
	}
	return true;
}


function change_express(price)
{
	if (price >= 0) {
		swapDisplay("expressoption", true);
	} else {
		swapDisplay("expressoption", false);
	}
}

function swapDisplay(display, show)
{
	display = document.getElementById(display).style;
	if (!show) {
		display.display = "none";
	} else {
		display.display = "block";
	}
}

function hideShowLayer(hide, show)
{
    //ie
    if (document.all != null) {
        var mydiv = document.all.tags("div");
        for (i=0; i<(mydiv.length); i++) {
            if (mydiv[i]) {
                var mydivname = mydiv[i].id;
            } else {
                var mydivname = '';
            }
            if (mydivname.search(hide) != -1 && hide != '') {
                document.all[mydivname].style.visibility = 'hidden';
            }
            if (mydivname.search(show) != -1 && show != '') {
                document.all[mydivname].style.visibility = 'visible';
            }
        }
    //ns
    } else if (document.layers) {
        for (i=0; i<(document.layers.length); i++) {
            if (document.layers[i].name.search(hide) != -1 && hide != '') {
                document.layers[i].visibility = 'hide';
            }
            if (document.layers[i].name.search(show) != -1 && show != '') {
                document.layers[i].visibility = 'show';
            }
        }
    //mz
    } else if (document.getElementById) {
        var mydiv = document.getElementsByTagName("div");
        for (i=0; i<(mydiv.length); i++) {
            if (mydiv[i]) {
                var mydivname = mydiv[i].id;
            } else {
                var mydivname = '';
            }
            if (mydivname.search(hide) != -1 && hide != '') {
                document.getElementById(mydivname).style.visibility = 'hidden';
            }
            if (mydivname.search(show) != -1 && show != '') {
                document.getElementById(mydivname).style.visibility = 'visible';
            }
        }
    }
}

function htmlPopUp(f, width, height)
{
	var iTop  = (screen.height - height) / 2 ;
	var iLeft = (screen.width  - width) / 2 ;

	var sOptions = "toolbar=no";
	sOptions += ",width=" + width;
	sOptions += ",height=" + height;
	sOptions += ",resizable=no";
	sOptions += ",scrollbars=" + "no";
	sOptions += ",left=" + iLeft ;
	sOptions += ",top=" + iTop ;

	var oMyWindow = window.open(f, "flyerdepot", sOptions)
	oMyWindow.focus();
}

function htmlPopUp(f, width, height, name)
{
	var iTop  = (screen.height - height) / 2 ;
	var iLeft = (screen.width  - width) / 2 ;

	if (name == null || name == '') {
	    name = "flyerdepot";
	}

	var sOptions = "toolbar=no";
	sOptions += ",width=" + width;
	sOptions += ",height=" + height;
	sOptions += ",resizable=no";
	sOptions += ",scrollbars=" + "no";
	sOptions += ",left=" + iLeft ;
	sOptions += ",top=" + iTop ;

	var oMyWindow2 = window.open(f, name, sOptions)
	oMyWindow2.focus();
}

function utilsPopUp(f, width, height)
{
	var iTop  = (screen.height - height) / 2 ;
	var iLeft = (screen.width  - width) / 2 ;

	var sOptions = "toolbar=no";
	sOptions += ",width=" + width;
	sOptions += ",height=" + height;
	sOptions += ",resizable=no";
	sOptions += ",scrollbars=" + "yes";
	sOptions += ",left=" + iLeft ;
	sOptions += ",top=" + iTop ;

	var oMyWindow = window.open(f, "flyerdepot", sOptions)
	oMyWindow.focus();
}

/**
 * Text eines Tags ändern
 *
 * @param string element    der Name (id) des Tags
 * @param string html       Der Text
 * @return void
 */
function alterHtml(element, html)
{
    //IE 4+
    if (document.all != null) {
        document.all[element].innerHTML = html;
    //NS 6+
    } else if (document.getElementById) {
        rng = document.createRange();
        el = document.getElementById(element);
        rng.setStartBefore(el);
        htmlFrag = rng.createContextualFragment(html);
        while (el.hasChildNodes())
            el.removeChild(el.lastChild);
        el.appendChild(htmlFrag);
    }
}

function confirmDelete(url, msg)
{
    if (confirm(msg)) {
        window.location.href = url;
    } else {
        return false;
    }
}

function confirmDeleteBtn(msg)
{
    if (confirm(msg)) {
        return true;
    }
    return false;
}

function str_replace (search, replace, subject)
{
  var result = "";
  var  oldi = 0;
  for (i = subject.indexOf (search)
     ; i > -1
     ; i = subject.indexOf (search, i))
  {
    result += subject.substring (oldi, i);
    result += replace;
    i += search.length;
    oldi = i;
  }
  return result + subject.substring (oldi, subject.length);
}








/**
 * enables highlight and marking of rows in data tables
 *
 */
function markRowsInit() {
    // for every table row ...
    var rows = document.getElementsByTagName('tr');
    for ( var i = 0; i < rows.length; i++ ) {
        // ... with the class 'odd' or 'even' ...
        if ( 'odd' != rows[i].className.substr(0,3) && 'even' != rows[i].className.substr(0,4) ) {
            continue;
        }
        // ... add event listeners ...
        // ... to highlight the row on mouseover ...
        /*if ( navigator.appName == 'Microsoft Internet Explorer' ) {
            // but only for IE, other browsers are handled by :hover in css
            rows[i].onmouseover = function() {
                this.className += ' hover';
            }
            rows[i].onmouseout = function() {
                this.className = this.className.replace( ' hover', '' );
            }
        }
        // Do not set click events if not wanted
        if (rows[i].className.search(/noclick/) != -1) {
            continue;
        }
        // ... and to mark the row on click ...
        rows[i].onmousedown = function() {
            var unique_id;
            var checkbox;

            checkbox = this.getElementsByTagName( 'input' )[0];
            if ( checkbox && checkbox.type == 'checkbox' ) {
                unique_id = checkbox.name + checkbox.value;
            } else if ( this.id.length > 0 ) {
                unique_id = this.id;
            } else {
                return;
            }

            if ( typeof(marked_row[unique_id]) == 'undefined' || !marked_row[unique_id] ) {
                marked_row[unique_id] = true;
            } else {
                marked_row[unique_id] = false;
            }

            if ( marked_row[unique_id] ) {
                this.className += ' marked';
            } else {
                this.className = this.className.replace(' marked', '');
            }

            if ( checkbox && checkbox.disabled == false ) {
                checkbox.checked = marked_row[unique_id];
            }
        }

        // ... and disable label ...
        var labeltag = rows[i].getElementsByTagName('label')[0];
        if ( labeltag ) {
            labeltag.onclick = function() {
                return false;
            }
        }*/
        // .. and checkbox clicks
        var radio = rows[i].getElementsByTagName('input')[0];
        if (radio && radio.type == 'radio') {
	        if (radio.checked) {
	        	rows[i].className += ' marked';
	        } else {
	        	rows[i].className = rows[i].className.replace(' marked', '');
	        }
	        radio.onclick = function() {
                markRowsInit();
            }
        }
        /*if ( checkbox ) {
            checkbox.onclick = function() {
                // opera does not recognize return false;
                this.checked = ! this.checked;
            }
        }*/
    }
}



























//similar to php: number_format($amount, 2, "," ,".");
//wanna know a secret? u can use this function 1:1 in Flash AS2
formatToCurrency = function(amount){

	myString = amount.toString();
	myDot    = myString.indexOf(".");

	function isRound (){
		myvalue = myString;
		cents   = "00";
	}
	function isFraction(){
		myvalue = myString.substr(0, myDot);
		cents   = myString.substr(myDot+1, myString.length);
	}
	function roundDecimals(){
		cents = Math.round(cents.substr(0, 2) + "." + cents.substr(2, cents.length))+"";
		addazero();
	}
	function addazero(){
		if (cents.length == 1){
			cents = cents + "0";
		}
	}
	function insertFormatting(){

		if (myvalue.length > 0) {
			myLength = myvalue.length;
			divide   = myLength / 3;

			if ((myLength % 3) == 0) {
				divide = (myLength / 3) - 1;
			}

			for (var i=1; i <= divide; i++) {
				myvalue  = myvalue.substr(0,(myLength-(3*i)-(i-1))) + "." + myvalue.substr((myLength-(3*i)-(i-1)), (3*i)+(i-1));
				myLength = myvalue.length;
			}
			euros = myvalue;
	 	}
	}

	myDot < 0 ? isRound(): isFraction();

	cents.length > 2 ? roundDecimals() : addazero();
	insertFormatting();

	return euros + "," + cents + " &euro;";
}


function changePrice(netto, brutto, el)
{
	el = $(el);
	if (el.is(':checked')) {
		item_price += netto;
		item_price_inc += brutto;
	} else {
		item_price -= netto;
		item_price_inc -= brutto;
	}
	$('#dyncalcprice').html(formatToCurrency(item_price));
	$('#dyncalcpriceinc').html(formatToCurrency(item_price_inc));
}


function checkImprovementExcludes(id, el)
{
	el = $(el);
	for (var i=0; i < improvement_excludes[id].length; i++) {
		var eid = improvement_excludes[id][i];
		
		if (el.is(':checked')) {
			$('#improvementRow'+eid+' input').attr('disabled','disabled');
			$('#improvementRow'+eid+' td').addClass('impexclude');
		} else {
			$('#improvementRow'+eid+' input').removeAttr('disabled');
			$('#improvementRow'+eid+' td').removeClass('impexclude');
		}
	}
	checkDrucktermin();
}

function checkDrucktermin()
{
	/*var obj = is_express ? improvement_annahme_express : improvement_annahme;
	var time = is_express ? annahme_express_ts : annahme_ts;
	var stime = is_express ? annahme_express : annahme;
	
	var atag = is_express ? abgabe_tage_express : abgabe_tage;
	var ldat = is_express ? lieferdatum_express : lieferdatum;
	
	for (var id in obj) {
		if ($('#cbimprovement'+id).is(':checked')) {
			if (obj[id][1] < time) {
				time = obj[id][1];
				stime = obj[id][0];
			}
		}
	}
	$('#ausgabe_annahme'+(is_express ? '_express' : '')).html(stime);*/

	var obj = improvement_annahme;
	var time = annahme_ts;
	var stime = annahme;
	
	var atag = abgabe_tage;
	var ldat = lieferdatum;
	
	for (var id in obj) {
		if ($('#cbimprovement'+id).is(':checked')) {
			//if (obj[id][1] >= time) {
			if (obj[id][1]) {
				time = obj[id][1];
				stime = obj[id][0];
				atag = obj[id][2] + ( (obj[id][3]) ? ' bis ' + obj[id][3] + ' Uhr' : '');
				ldat = obj[id][4];
			}
		}
	}
	$('#ausgabe_annahme').html(stime);
	$('#abgabe_tage').html(atag);
	$('#lieferdatum').html(ldat);
	
	// express
	if (!express_possible) return;
	
	obj = improvement_annahme_express;
	time = annahme_express_ts;
	stime = annahme_express;
	
	atag = abgabe_tage_express;
	ldat = lieferdatum_express;
	
	for (var id in obj) {
		if ($('#cbimprovement'+id).is(':checked')) {
			//if (obj[id][1] >= time) {
			if (obj[id][1]) {
				time = obj[id][1];
				stime = obj[id][0];
				atag = obj[id][2] + ( (obj[id][3]) ? ' bis ' + obj[id][3] + ' Uhr' : '');
				ldat = obj[id][4];
			}
		}
	}
	$('#ausgabe_annahme_express').html(stime);
	$('#abgabe_tage_express').html(atag);
	$('#lieferdatum_express').html(ldat);

}


jQuery(function(){			
	jQuery('.show-hide').togglr({showtext:'&dArr;',hidetext:'&uArr;',speed:'fast'});
	
	// see product_card.tpl!
	//$('.pkadds input').attr('checked', false); // danke FireFox!
	if (typeof(lateCheck)!="undefined" && lateCheck) {
		$('.pkadds input').attr('checked', false); // danke FireFox!
		eval(lateCheck);
	} else {
		$('.pkadds input').attr('checked', false); // danke FireFox!
	}
	
	$('ul.sf-menu').superfish({ 
            delay:       1000,                            
            animation:   {opacity:'show'},  
            speed:       'normal',                          
            autoArrows:  false,                           
            dropShadows: false                           
        });
});


