/* ------------------------------------------------------------------------------
 * rgShopsystems - Onlineshop & E-Commerce Lösungen
 * (C) Robert Gnuschke, rob@gmx.de
 * ------------------------------------------------------------------------------
 */

function round_kaufm(x) {
	// Funktion um kaufmännisch zu runden
  var k = (Math.round(x * 100) / 100).toString();
  k += (k.indexOf('.') == -1)? '.00' : '00';
  return k.substring(0, k.indexOf('.') + 3);
}

function eupreis2float(eupreis) {
	// Wandelt einen Preis im EU-Format (12345,67) (z.B. aus INPUT-Feldern)
	// in einen Javascript-Float (12345.67) um Berechnungen durchzuführen.
	var temp = eupreis.replace(" ", "").replace(",", "."); // Leerzeichen weg, Komma zu Punkt
	return parseFloat(temp); // Zahl zu Float
}

function float2eupreis(float) {
	// Wandelt einen Preis Javascript-Float (12345.67)
	// ins EU-Format (12345,67) um.
	var temp = round_kaufm(float);
	return number_format(temp, 2, ",", "").toString(); // Float zu String und kaufmännisch runden
}

function number_format (number, decimals, dec_point, thousands_sep) {
	// Formatiert Zahlen korrekt. 
	// Uebergabt: Nummer, Anzahl der Dezimalstellen, Dezimaltrenner, Tausend-Trenner
	var exponent = "";
	var numberstr = number.toString ();
	var eindex = numberstr.indexOf ("e");
	if (eindex > -1) {
		exponent = numberstr.substring (eindex);
		number = parseFloat (numberstr.substring (0, eindex));
	}
	if (decimals != null) {
		var temp = Math.pow (10, decimals);
		number = Math.round (number * temp) / temp;
	}
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ? 
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();
  
  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ? 
               (dec_point + fractional.substring (1)) : "";
	if (decimals != null && decimals > 0) {
		for (i = fractional.length - 1, z = decimals; i < z; ++i) {
			fractional += "0";
		}
	}
  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? 
                  thousands_sep : null;
	if (thousands_sep != null && thousands_sep != "") {
		for (i = integer.length - 3; i > 0; i -= 3) {
			integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
		}
	}
	return sign + integer + fractional + exponent;
}

function isNumeric(num) {
  return !isNaN(num)
}

// ----------------------------------------------------------------------
// Funktionen im Shop
// ----------------------------------------------------------------------

function Shop_Artikeldetail_WarenkorbPruefen() {
	if ($('#eigen1') && $('#eigen1').val() == "") {
		alert( $('#sFehlermeldung1').val() ); // Bitte wählen Sie die gewünschte(n) Eigenschaft(en) des Artikels aus!
		return false;
	}
	if ($('#eigen2') && $('#eigen2').val() == "") {
		alert( $('#sFehlermeldung1').val() ); // Bitte wählen Sie die gewünschte(n) Eigenschaft(en) des Artikels aus!
		return false;
	}
	if ($('#eigen3') && $('#eigen3').val() == "") {
		alert( $('#sFehlermeldung1').val() ); // Bitte wählen Sie die gewünschte(n) Eigenschaft(en) des Artikels aus!
		return false;
	}
	if ($('#eingabe_anzahl').val() == "" || isNaN($('#eingabe_anzahl').val()) || $('#eingabe_anzahl').val() <= 0) {
		alert( $('#sFehlermeldung2').val() ); // Bitte eine gültige Anzahl eingeben!
		return false;
	}
}

function ShopArtikeldetail_EigenschaftPreisAendern(EigenFeld) {
	if (document.getElementById(EigenFeld).selectedIndex == 0) {
		alert( $('#sFehlermeldung1').val() );
		return false;
	}
	var Eval_Basispreis           = document.getElementById("basispreis").value;
	var Eval_Staffelpreis         = document.getElementById("staffelpreis1").value;
	var eigen                     = new Array();
	for (var i=1; i<=3; i++) {
		if (document.getElementById("eigen"+i)) {
			if (document.getElementById("eigen"+i).value != "" && document.getElementById("eigen"+i).value != "0") {
				eigen[i]                = document.getElementById("eigen"+i).value.split("==");
				Eval_Basispreis        += eigen[i][1];
				Eval_Staffelpreis      += eigen[i][1];
			}
		}
	}
	// Berechnen des neuen Basis- bzw. Staffelpreises
	var Ergebnis_Basispreis       = eval(Eval_Basispreis);
	var Ergebnis_Staffelpreis     = eval(Eval_Staffelpreis);
	// Basis- bzw. Staffelpreis auf zwei Stellen nach dem Komma
	Ergebnis_Basispreis           = round_kaufm(Ergebnis_Basispreis);
	Ergebnis_Staffelpreis         = round_kaufm(Ergebnis_Staffelpreis);
	// Speichern des neuen Basis- bzw. Staffelpreises in Formular
	document.getElementById("einzelpreis").value   = Ergebnis_Basispreis;
	document.getElementById("staffelpreis1").value = Ergebnis_Staffelpreis;
	document.getElementById("HTMLPreis").innerHTML = float2eupreis(Ergebnis_Basispreis);
	return true;
}

function shop_GaestebuchFormular_pruefen() {
	if ($('#eintrag_name').val() == "") {
		alert( $('#sFehlermeldung1').val() );
		return false;
	}
	if ($('#eintrag_text').val() == "") {
		alert( $('#sFehlermeldung2').val() );
		return false;
	}
}

function shop_kontaktformular_absenden_pruefen() {
	if (
		($('#eintrag_name').val() == "") ||
		($('#eintrag_email').val() == "") ||
		($('#eintrag_text').val() == "")
	)
	{
		alert( $('#sFehlermeldung1').val() );
		return false;
	}
}

function UStIdNr_SyntaxKorrektur(obj) {
	// Behebt einige häufige Syntaxfehler, die bei der Eingabe von
	// UStIdNrn. gemacht werden.
	// Diese Funktion wird im Shop bei der Kundenregistrierung und im Adminbereich verwendet.
	var ustidnr = $('#'+obj.id).val();
	$('#'+obj.id).val(ustidnr.replace(" ", "").replace("-", "").toUpperCase());
}

function ShopKundenregistrierung_EMailCheck() {
	if($('#eintrag_email').val() != $('#eintrag_email2').val()) {
		$('#Ergebnis_EMail').html("<img src='sysimages/delete.png' width='16' height='16' />");
		$('#eintrag_email').focus();
	} else {
		// E-Mail Adressen sind identlisch -> Mail-Adresse verifizieren
		ShopKundenregistrierung_EMailCheck_Ajax();
	}
}

function ShopKundenregistrierung_EMailCheck_Ajax() {
	$.ajax({
			type: "GET",
			url: "include/ajax_shop.php",
			data: "aktion=Shop_KundenReg_Form_EmailCheck&email="+encodeURIComponent($('#eintrag_email').val()),
			success: function(antwort) {
				if (antwort == "") {
					$('#div_Ergebnis_EMail').html("Fehler: Leere Daten!");
					return;
				}
				var json = eval('(' + antwort + ')');
				if (json.meldung != "") {
					// Fehler -> Fehlermeldung anzeigen
					$('#div_Ergebnis_EMail').show();
					$('#div_Ergebnis_EMail').html(json.meldung);
					$('#eintrag_email').focus();
				} else {
					// Kein Fehler -> Fehlermeldung ausblenden, OK-Symbol anzeigen
					$('#div_Ergebnis_EMail').hide();
					$('#Ergebnis_EMail').html("<img src='sysimages/accept.png' width='16' height='16' />");
				}
			} // success
	}); // ajax
}

function ShopKundenregistrierung_PasswortCheck() {
	if($('#eintrag_passwort1').val() == "" || ($('#eintrag_passwort1').val() != $('#eintrag_passwort2').val())) {
		$('#Ergebnis_Passwort').html("<img src='sysimages/delete.png' width='16' height='16' />");
		$('#eintrag_passwort1').focus();
	} else {
		$('#Ergebnis_Passwort').html("<img src='sysimages/accept.png' width='16' height='16' />");
	}
}

function ShopKundenregistrierung_Formular_pruefen() {
	var i = 0;
	var bHausnrGefunden = false;
	if (
			($('#eintrag_vorname').val() == "") ||
			($('#eintrag_nachname').val() == "") ||
			($('#eintrag_strasse').val() == "") ||
			($('#eintrag_plz').val() == "") ||
			($('#eintrag_ort').val() == "") ||
			($('#eintrag_email').val() == "") ||
			($('#eintrag_telefon').val() == "") ||
			($('#eintrag_passwort1').val() == "")
		)
		{
			alert($('#sFehlermeldung1').val());
			return false;
		}
	
	for (i = 0; i <= document.RegistrierungFormular.eintrag_strasse.value.length-1; i++) {
		if ((document.RegistrierungFormular.eintrag_strasse.value.charAt(i) < "0") || (document.RegistrierungFormular.eintrag_strasse.value.charAt(i) > "9")) { continue; }
		bHausnrGefunden = true;
		break;
	}
	if (bHausnrGefunden == false) {
		alert($('#sFehlermeldung2').val()); // "Bitte geben Sie Ihre Hausnummer ein!"
		return false;
	}
	
	if($('#eintrag_passwort1').val() != $('#eintrag_passwort2').val()) {
		alert($('#sFehlermeldung3').val()); //"Bitte Passwort überprüfen!"
		return false;
	}
	if ( $('#eintrag_agb').attr('checked') == false || $('#eintrag_datenschutz').attr('checked') == false) {
		alert($('#sFehlermeldung4').val()); // "Bitte bestätigen Sie die AGB und Ihr Einverständnis zur Datenspeicherung!"
		return false;
	}
}

function Shop_Bestellung_AGB_Check(ln_Fehler_AllePflichtfelder, InputCheck) {
	var Arr_InputCheck    = InputCheck.split("#")
	for (i=0; i < Arr_InputCheck.length; i++) {
		if (Arr_InputCheck[i] == "") { continue; }
		var html_element    = document.getElementById(Arr_InputCheck[i]);
		if (html_element.checked == false) {
			alert(ln_Fehler_AllePflichtfelder);
			return false;
		}
	}
	return true;
}

function Shop_Bestellung_Zahlungsart_Check(ln_Fehler_AllePflichtfelder) {
	var b_Zahlungsart_Checked = false;
	var radio_Zahlungsart = document.forms["FormularBestellung"].elements["zahlungsart"];
	for (i=0; i<radio_Zahlungsart.length; i++) {
		if (radio_Zahlungsart[i].checked === false) { continue; }
		b_Zahlungsart_Checked = true;
		break;
	}
	if (b_Zahlungsart_Checked == false) {
		alert(ln_Fehler_AllePflichtfelder);
		return false;
	}
	return true;
}

function Shop_MeinKonto_Daten_Formular_pruefen(sFehlermeldung1) {
	if (
			($('#eintrag_vorname').val() == "") ||
			($('#eintrag_nachname').val() == "") ||
			($('#eintrag_strasse').val() == "") ||
			($('#eintrag_plz').val() == "") ||
			($('#eintrag_ort').val() == "") ||
			($('#eintrag_email').val() == "") ||
			($('#eintrag_telefon').val() == "")
		)
		{
			alert($('#sFehlermeldung1').val());
			return false;
		}
}

function Shop_MeinKonto_Passwort_Formular_pruefen() {
	if (( $('#eintrag_passwort0').val() == "") || ( $('#eintrag_passwort1').val()  == "")) {
		alert($('#sFehlermeldung1').val()); //"Bitte Passwort überprüfen!"
		return false;
	}
	if($('#eintrag_passwort1').val() != $('#eintrag_passwort2').val()) {
		alert($('#sFehlermeldung1').val()); //"Bitte Passwort überprüfen!"
		return false;
	}
}

function ShopKundenPasswortVergessen_Formular_pruefen() {
	if ($('#eintrag_email').val() == "") {
		alert($('#sFehlermeldung1').val());
		return false;
	}
}

function AenderungVorgenommen() {
	$('#aenderung').val("1") 
}

function KeineAenderungVorgenommen() {
	$('#aenderung').val("0") 
}

function ErsterBuchstabeGross(string){
	var word      = string;
	var firstChar = word.charAt(0).toUpperCase();
	var rest      = word.substring(1,word.length);
	word          = firstChar.concat(rest);
	return word;
}

function GrGr(formname,formfeld) {
	var string = document.forms[formname].elements[formfeld].value;
	if (string.length < 2) {
		var neu = ErsterBuchstabeGross(string);
		document.forms[formname].elements[formfeld].value = neu;
	}
}

// ----------------------------------------------------------------------
// Shop -> Kundenversand
// ----------------------------------------------------------------------
function kv_Shop_Lieferanschriften_Anzeigen(id_kunde) {
	if (!isNumeric(id_kunde)) { return; }
	$('#kv_adressliste').html("<img src='sysimages/ladegrafik.gif'>");
	$.ajax({
			type: "GET",
			url: "include/ajax_shop.php",
			data: "aktion=kv_Shop_Lieferanschriften_Anzeigen&id_kunde="+encodeURIComponent(id_kunde),
			success: function(antwort) {
				var html_kv_adressliste = document.getElementById("kv_adressliste");
				var html = "";
				if (antwort == "") {
					html_kv_adressliste.innerHTML = "<p>Beim Abruf der Lieferadressen ist ein Fehler aufgetreten.</p>";
					return;
				}
				var json = eval('(' + antwort + ')');
				if (json.ergebnis == -1) {
					html_kv_adressliste.innerHTML = "<p>Beim Abruf der Lieferadressen ist ein Fehler aufgetreten.</p>";
					return;
				}
				if (json["Lieferadressen"].length == 0) {
					html_kv_adressliste.innerHTML = "<p>"+json.ln_Lieferadressen_KeineVorhanden+"</p>";
				} else {
					for (var i = 0; i < json["Lieferadressen"].length; i++) {
						html += "<div class='kv_Adresse'>";
						html += "<img src='sysimages/cross.png' alt='"+json.ln_BTN_Loeschen+"' title='"+json.ln_BTN_Loeschen+"' width='16' height='16' style='cursor: pointer; float: right; margin: 0 2px 0 0;' onClick='kv_Shop_Lieferanschriften_Delete("+json["Lieferadressen"][i].id+", \""+json.ln_Loeschen_Abfrage+"\");'>";
						html += "<img src='sysimages/page_edit.png' alt='"+json.ln_BTN_Bearbeiten+"' title='"+json.ln_BTN_Bearbeiten+"' width='16' height='16' style='cursor: pointer; float: right; margin: 0 2px 0 0;' onClick='kv_htmlBearbeiten("+json["Lieferadressen"][i].id+");'> ";
						html += "<img src='sysimages/package_green.png' class='Package'' alt='' title='' width='16' height='16'> ";
						html += "<b>"+json["Lieferadressen"][i].name1+"</b><br />";
						if (json["Lieferadressen"][i].name2 != "") {
							html += ""+json["Lieferadressen"][i].name2+", ";
						}
						html += ""+json["Lieferadressen"][i].strasse+", ";
						html += ""+json["Lieferadressen"][i].plz+" ";
						html += ""+json["Lieferadressen"][i].ort+", ";
						html += ""+json["Lieferadressen"][i].land_lang+"";
						html += "</div>";
						html += "<div id='edit_"+json["Lieferadressen"][i].id+"' class='kv_Adresse_edit' style='display: none;'>";
						html += "<table>";
						html += "  <tr>";
						html += "    <td style='width:175px; font-weight: bold;'>"+json.ln_Name+" 1*</td>";
						html += "    <td><input type='text' name='name1_"+json["Lieferadressen"][i].id+"' id='name1_"+json["Lieferadressen"][i].id+"' maxlength='75' size='50' value='"+json["Lieferadressen"][i].name1+"'></td>";
						html += "  </tr>";
						html += "  <tr>";
						html += "    <td>"+json.ln_Name+" 2</td>";
						html += "    <td><input type='text' name='name2_"+json["Lieferadressen"][i].id+"' id='name2_"+json["Lieferadressen"][i].id+"' maxlength='75' size='50' value='"+json["Lieferadressen"][i].name2+"'></td>";
						html += "  </tr>";
						html += "  <tr>";
						html += "    <td style='font-weight: bold;'>"+json.ln_Kunden_Reg_StrasseNr+"*</td>";
						html += "    <td><input type='text' name='strasse_"+json["Lieferadressen"][i].id+"' id='strasse_"+json["Lieferadressen"][i].id+"' maxlength='75' size='50' value='"+json["Lieferadressen"][i].strasse+"'></td>";
						html += "  </tr>";
						html += "  <tr>";
						html += "    <td style='font-weight: bold;'>"+json.ln_PLZ+" &amp; "+json.ln_Ort+"*</td>";
						html += "    <td><input type='text' name='plz_"+json["Lieferadressen"][i].id+"' id='plz_"+json["Lieferadressen"][i].id+"' maxlength='5' size='5' value='"+json["Lieferadressen"][i].plz+"'>";
						html += "        <span id='html_ort_"+json["Lieferadressen"][i].id+"'><input type='text' name='ort_"+json["Lieferadressen"][i].id+"' id='ort_"+json["Lieferadressen"][i].id+"' maxlength='75' size='40' value='"+json["Lieferadressen"][i].ort+"'></span></td>";
						html += "  </tr>";
						html += "  <tr>";
						html += "    <td style='font-weight: bold;'>"+json.ln_Land+"*</td>";
						html += "    <td>"+json["Lieferadressen"][i].html_laender+"</td>";
						html += "  </tr>";
						html += "  <tr>";
						html += "    <td>&nbsp;</td>";
						html += "    <td><input type='button' value='"+json.ln_BTN_Absenden+" &raquo;' class='SubmitButton' onClick='kv_Shop_Lieferanschrift_Update("+json["Lieferadressen"][i].id+", \""+json.ln_Fehler_AllePflichtfelderAusf+"\");'></td>";
						html += "  </tr>";
						html += "</table>";
						html += "";
						html += "</div>";
					}
					html_kv_adressliste.innerHTML = html;
				}
			} // success
	}); // ajax
}
function kv_htmlBearbeiten(id) {
	var obj_id = "edit_"+id;
	$('#'+obj_id).slideToggle();
}
function kv_Shop_Lieferanschrift_Update(id, ln_Fehler_AllePflichtfelderAusf) {
	if (!isNumeric(id)) { return; }
	var name1   = document.getElementById("name1_"+id).value;
	var name2   = document.getElementById("name2_"+id).value;
	var strasse = document.getElementById("strasse_"+id).value;
	var plz     = document.getElementById("plz_"+id).value;
	var ort     = document.getElementById("ort_"+id).value;
	var land    = document.getElementById("land_"+id).value;
	if (name1 == "" || strasse == "" || plz == "" || ort == "") {
		alert (ln_Fehler_AllePflichtfelderAusf);
		return;
	}
	$.ajax({
			type: "GET",
			url: "include/ajax_shop.php",
			data: "aktion=kv_Shop_Lieferanschriften_Update&id="+id+"&name1="+encodeURIComponent(name1)+"&name2="+encodeURIComponent(name2)+"&strasse="+encodeURIComponent(strasse)+"&plz="+plz+"&ort="+encodeURIComponent(ort)+"&land="+land,
			success: function(antwort) {
				var html_kv_adressliste = document.getElementById("kv_adressliste");
				if (antwort == "") {
					html_kv_adressliste.innerHTML = "<p>Beim Speichern der Lieferadressen ist ein Fehler aufgetreten.</p>";
					return;
				}
				var json = eval('(' + antwort + ')');
				if (json.ergebnis == -1) {
					html_kv_adressliste.innerHTML = "<p>Beim Speichern der Lieferadressen ist ein Fehler aufgetreten.</p>";
					return;
				}
				if (json.meldung != "") {
					alert (json.meldung);
				}
				kv_Shop_Lieferanschriften_Anzeigen(json.id_kunde);
			} // success
	}); // ajax
}
function kv_Shop_Lieferanschrift_Insert(id_kunde, ln_Fehler_AllePflichtfelderAusf) {
	if (!isNumeric(id_kunde)) { return; }
	var name1   = document.getElementById("eintrag_name1").value;
	var name2   = document.getElementById("eintrag_name2").value;
	var strasse = document.getElementById("eintrag_strasse").value;
	var plz     = document.getElementById("eintrag_plz").value;
	var ort     = document.getElementById("eintrag_ort").value;
	var land    = document.getElementById("eintrag_land").value;

	if (name1 == "" || strasse == "" || plz == "" || ort == "" || land == "") {
		alert (ln_Fehler_AllePflichtfelderAusf);
		return;
	}
	$.ajax({
			type: "GET",
			url: "include/ajax_shop.php",
			data: "aktion=kv_Shop_Lieferanschriften_Insert&id_kunde="+id_kunde+"&name1="+encodeURIComponent(name1)+"&name2="+encodeURIComponent(name2)+"&strasse="+encodeURIComponent(strasse)+"&plz="+plz+"&ort="+encodeURIComponent(ort)+"&land="+land,
			success: function(antwort) {
				var html_kv_adressliste = document.getElementById("kv_adressliste");
				if (antwort == "") {
					html_kv_adressliste.innerHTML = "<p>Beim Speichern der Lieferadressen ist ein Fehler aufgetreten.</p>";
					return;
				}
				var json = eval('(' + antwort + ')');
				if (json.ergebnis == -1) {
					html_kv_adressliste.innerHTML = "<p>Beim Speichern der Lieferadressen ist ein Fehler aufgetreten.</p>";
					return;
				}
				if (json.meldung != "") {
					alert (json.meldung);
				}
				kv_Shop_Lieferanschriften_Anzeigen(json.id_kunde);
				document.getElementById("eintrag_name1").value   = "";
				document.getElementById("eintrag_name2").value   = "";
				document.getElementById("eintrag_strasse").value = "";
				document.getElementById("eintrag_plz").value     = "";
				document.getElementById("eintrag_ort").value     = "";
			} // success
	}); // ajax
}
function kv_Shop_Lieferanschriften_Delete(id, ln_Loeschen_Abfrage) {
	if (!isNumeric(id)) { return; }
	if (confirm(ln_Loeschen_Abfrage) == false) { return; }
	if (id == "" || id == 0) { return; }
	$.ajax({
			type: "GET",
			url: "include/ajax_shop.php",
			data: "aktion=kv_Shop_Lieferanschriften_Delete&id="+id,
			success: function(antwort) {
				var json = eval('(' + antwort + ')');
				if (json.meldung != "") {
					alert (json.meldung);
				}
				kv_Shop_Lieferanschriften_Anzeigen(json.id_kunde);
			} // success
	}); // ajax
}

// ----------------------------------------------------------------------
// Menü für Kategorien
// ----------------------------------------------------------------------
function menu(obj){
	if (!obj.length) return;
	$(obj).find("ul").css({display: "none"});
	$(obj).hover(function(){
		$(this).find('ul').first().stop(true, true).show(300); //slideDown(300);
	},function(){
		$(this).find('ul').first().stop(true, true).hide(300); //slideUp(300);
	});
}


