// Allgemein genutzte Funktionen: SW 2004-04-26

// Horizontale Navigation

function markiereText(tname,status)
{
	if (document.getElementById) document.getElementById(tname).style.textDecoration=status;
}

// Validierung einer Emailadresse
// myEmail: zu validierende Adresse
// fehler1 und fehler2 sind optional, sollten bei Verwendung allerdings paarig uebergeben werden
function emailCheck(myEmail,fehler1,fehler2)
{
	var emailok = /.+@.+\..+/;
	
	if ( ! ( emailok.exec( myEmail ) ) )	
	{
		if (myEmail=='') 
		{	
			if ( fehler1 == null ) alert('Bitte geben Sie Ihre E-Mail-Adresse ein.');
			else alert( fehler1 );
		}
		else 
		{
			if ( fehler2 == null ) alert('Bitte kontrollieren Sie die Schreibweise der von Ihnen eingegebenen E-Mail-Adresse.');
			else alert ( fehler2 );
		}			
		return false;
	} 
	else
	{
		return true;
	}	
}

function empfehle(seite)
{
	alert('Empfehlendialog fuer ' + seite + ' wurde bisher noch nicht erstellt.');
}

function drucke(seite)
{
	alert('Druckansicht fuer ' + seite + ' wurde bisher noch nicht erstellt.');
}

function sortiereListeNach()
{
	alert('Sortiere Liste nach ...');
}

// Verarbeitet die Auswahl der pro Seite darzustellenden Artikel
// Parameter proseite: Integer Wert, Anzahl
function zeigeAnzahlListenelemente(proseite)
{
	// Getit, ukv
	var formular = document.listenansicht;
	formular.PageSizeStr.value=proseite;
	formular.submit();
}

function vergleicheProdukte(myAction,modus)
{
	if(modus==null)
	{
		var formular = document.listenansicht;
		formular.action=myAction;
		popup('vergleichsansicht');
		formular.target='vergleichsansicht';
		formular.submit();
	}
	else
	{
		if(modus=='direkt')
		{
			popup('vergleichsansicht');
		}
	}
}

function loescheProdukte(myAction)
{
		var formular = document.listenansicht;
		formular.action=myAction;
		formular.target="_self";
		formular.submit();
}

function hinzufuegen(url)
{
	var formular = document.detailansicht;
	formular.action = url;
	formular.submit();
}

function zurKasse(url,aufrufer)
{
	if(aufrufer=='popup')
	{
		opener.location.href = url;
	}
}

function getRadioValue(obj)
{
	var str;
	for (var i=0;i<obj.length;i++)
	{
		if(obj[i].checked == true) str = i;
	}
	return str;	
}

function aktualisiereFormular(obj)
{
	var radioAktiv = eval('document.f' + obj.value + 'bestellen.' + obj.name + '[' + (obj.value - 1) + ']');
	MM_showHideLayers('l' + aktivesFormular + 'bestellen','','hide','l' + obj.value + 'bestellen','','show');
	if ( radioAktiv != null )
		radioAktiv.checked = true;
	aktivesFormular = obj.value;
}

function tauscheHaendler(obj,url)
{
	if (obj.value != '') {
		obj.form.action = url;
		obj.form.submit();
	}
}

function popup(name,url)
{
	var poptions='menubar=yes,scrollbars=yes,resizable=yes,width=655,height=480,top=300,left=300';
	switch(name)
	{
		 case "agbs":
		 poptions='menubar=yes,scrollbars=yes,resizable=yes,width=672,height=550,top=300,left=300';
		 break;
		 case "hilfe":
		 poptions='menubar=yes,scrollbars=yes,resizable=yes,width=672,height=550,top=300,left=300';
		 break;
		 case "sicherheit":
		 poptions='menubar=yes,scrollbars=yes,resizable=yes,width=672,height=550,top=300,left=300';
		 break;
		 case "bestellprozess":
		 poptions='menubar=no,scrollbars=yes,resizable=no,width=480,height=480,top=300,left=300';
		 break;
		 case "versandkosten":
		 poptions='menubar=no,scrollbars=no,resizable=no,width=460,height=380,top=300,left=300';
		 break;
		 case "epcard":
		 poptions='menubar=no,scrollbars=no,resizable=no,width=460,height=310,top=300,left=300';
		 break;
		 case "finanzierung":
		 poptions='menubar=yes,scrollbars=yes,resizable=yes,width=672,height=550,top=300,left=300';
		 break;
		 case "finanzierungsrechner":
		 poptions='menubar=yes,scrollbars=yes,resizable=yes,width=500,height=550,top=300,left=300';
		 break;
		 case "servicesterne":
		 poptions='menubar=no,scrollbars=yes,resizable=no,width=672,height=550,top=300,left=300';
		 break;
		 case "leaveToEPMedienshop":
		 poptions='menubar=no,scrollbars=no,resizable=no,width=460,height=250,top=300,left=300';
		 break;
		 case "browserhinweis":
		 poptions='width=657,height=480,top=150,left=150,toolbar=no,resizable=no,scrollbars=yes';
		 break;
		 case "techniklexikon":
		 poptions='width=670,height=480,toolbar=no,resizable=no,scrollbars=yes';
		 break;
		 case "weiterempfehlung":
		 poptions='width=600,height=680,toolbar=no,resizable=no,scrollbars=no';
		 break;
		 case "haendlersuche":
		 poptions='width=672,height=550,top=300,left=300,toolbar=no,resizable=yes,scrollbars=yes';
		 break;
		 case "zoom":
		 poptions='menubar=yes,scrollbars=no,resizable=yes,width=400,height=400';
		 break;
		 case "vergleichsansicht":
		 poptions='menubar=yes,scrollbars=yes,resizable=yes,width=840,height=480';
		 break;
		 case "druckansicht":
		 poptions='menubar=yes,scrollbars=yes,resizable=yes,width=670,height=480';
		 break;
		 case "_self":
		 break;
		 default:
		 alert("Popup bisher nicht definiert");
		 break;		
	}
	if (name!='_self') 
	{
		if ( url == null ) window.open('',name,poptions);
		else window.open(url,name,poptions);
	}
	
}


/**
* Updated KA, 06/02/08
*/
// Constants
var serviceDeliveryButtons = "serviceDeliveryButtons";
var deliveryPrice = "deliveryPrice";
var debitAdviceFields = "debitAdviceFields";

var selectedRadioButton  = null;

function hide (id) {
	var obj = getID(id);
	if ( obj ) {
		obj.style.display = "none";
	}
}

function show (id) {
	var obj = getID(id);
	if ( obj ) {
		obj.style.display = "block";
	}
}

function closeAllShippingMethodLayer(clickedRadioButName) {
	
	// Pr&uuml;fen, ob gleicher Radio Button nochmal geklickt wurde
	if (clickedRadioButName == selectedRadioButton) {
		if ("MailOrder.normal" == clickedRadioButName) {
			hide('ChangeShippingAdress');
		}
		if ("Packstation.packstation" == clickedRadioButName) {
			hide('ChangePackstationAdress');
		}
		return;
	}

	// Aktiven RadioButton speichern
	selectedRadioButton = clickedRadioButName;
	
	// Alle SubLayer ausblenden
	closeAllLayersInArray(shippingMethodIds);

	if(document.getElementById("DeliveryAndPayForm_ShippingMethodNameDelivery") != null){
		// Wenn "Service Lieferung geklickt, Sub-Radio Buttins aktivieren 
		// wenn nicht, dann deaktivieren und deselektieren
		if (("makeServiceDeliveryButtonsAvailable" == clickedRadioButName) ) {
			toggleServiceRadioButtons(true);
		}
		else {
			// Außerdem "fake"-Radiobutton in &uuml;berschrift deaktivieren, wenn ein anderer geklickt wird
			document.getElementById("DeliveryAndPayForm_ShippingMethodNameDelivery").checked = false;
			toggleServiceRadioButtons(false);
			clearServiceRadios();
		}
	}
	
	copyToHiddenField(clickedRadioButName);
	
}


function copyToHiddenField(clickedRadioButName) {
	// fill hidden fields in form from radio buttons above
	elements=document.getElementsByName("DeliveryAndPayForm_ShippingMethodName");
	for(i=0;i<elements.length;i++) {
	  element=elements[i];
	  if(element.id!=null && element.id.length>0) {
	    if(element.value==clickedRadioButName) {
	      element.checked=true;
	    } else {
	      element.checked=false;
	    }
	  } else {
	    element.value=clickedRadioButName;
	  }
	}
}

//closeAllPaymentMethodLayer(this.value);toggleDebitAdviceFields(false);


function closeAllPaymentMethodLayer(clickedRadioButName) {
	if (clickedRadioButName == selectedRadioButton) {
		return;
	}
	// Aktiven RadioButton speichern
	selectedRadioButton = clickedRadioButName;

	// Alle SubLayer ausblenden
	closeAllLayersInArray(paymentMethodIds);

	if ("Online.debitAdviceProcedure" == clickedRadioButName) {
		show('paymentDebit');
		toggleDebitAdviceFields(true);
	}
	else {
		toggleDebitAdviceFields(false);
		if ("Online.guiPayment" == clickedRadioButName) {
			show('paymentCC');
		}
	}
}

// Aktiviert/Deaktiviert alle RadioButtons f&uuml;r Service Lieferung
function toggleServiceRadioButtons (bShow) {

	var inputTags = getServiceRadioButtons();
	for ( var i=0; i<inputTags.length ; i++ ) {
		inputTags[i].disabled = (bShow) ? false : true;
	}
	if (bShow) {
		// select first one
		inputTags[0].checked = true;
		updatePrice(inputTags[0].value);
	}
}

// Aktiviert/Deaktiviert alle InputFelder f&uuml;r Lastschriftdaten
function toggleDebitAdviceFields (bShow) {
	var inputTags = getDebitAdviceFields();
	for ( var i=0; i<inputTags.length ; i++ ) {
		inputTags[i].disabled = (bShow) ? false : true;
	}
}

/*
* Aktualisiert das PriceFeld bei "Service Lieferungen" mit
* der aktuell gew&auml;hlten Auswahl
*/
function updatePrice(ShippingName) {
	if (getID(deliveryPrice) && ShippingName) {
		getID(deliveryPrice).innerHTML = serviceDeliveryPrices[ShippingName];
	}
	copyToHiddenField(ShippingName);
}

/* 
* Returns an Objekt by a ID or null
*/
function getID(id) {
	if (document.getElementById ) {
		return document.getElementById(id);
	}
	// No DOM available ( zb Netscape 4.7 )
	return null;
}


/*
* setzt alle Elemente innerhaln des Arrays auf "display:none;"
*/
function closeAllLayersInArray(arr) {
	if (arr) {
		// Alle SubLayer ausblenden
		for ( var i=0; i<arr.length ; i++ ) {
			getID(arr[i]).style.display = "none";
		}	
	}
}

/* 
* Ermittelt alle Input-Tag mit type="radio"
* unterhalb der ID serviceDeliveryButtons
*/
function getServiceRadioButtons () {
	var radButts = new Array();
	var obj = getID(serviceDeliveryButtons);

	if ( obj != null ) {
		var inputs = obj.getElementsByTagName("input");
		if ( inputs != null ) {
			for ( var i=0; i<inputs.length ; i++ ) {
				if ( inputs[i].type == "radio" ) {
					radButts.push (inputs[i]);
				}
			}
		}
	}
	return radButts;
}

function clearServiceRadios() {
	var obj = getID(serviceDeliveryButtons);
	if ( obj != null ) {
		var inputs = obj.getElementsByTagName("input");
		if ( inputs != null ) {
			for ( var i=0; i<inputs.length ; i++ ) {
				if ( inputs[i].type == "radio" ) {
					inputs[i].checked = false;
				}
			}
		}
	}
	updatePrice('clear');
}
/* 
* Ermittelt alle Input-Tag mit type="text"
* unterhalb der id debitAdviceFields
*/
function getDebitAdviceFields () {
	var inputFields = new Array();
	var obj = getID(debitAdviceFields);
	if ( obj != null ) {
		var inputs = obj.getElementsByTagName("input");
		if ( inputs != null ) {
			for ( var i=0; i<inputs.length ; i++ ) {
				if ( inputs[i].type == "text" ) {
					inputFields.push (inputs[i]);
				}
			}
		}
	}
	return inputFields;
}






