// ********************************* OBSERVER *****************************************************************
window.onload=function(){
	// MO-Funktion für Bilder mit der Klasse "hoverImg" +++++++++++++
	$$(".hoverImg").each(function(i){
		i.observe('mouseover', function(event){ imageChangeMouseOver(i, true); });
		i.observe('mouseout', function(event){ imageChangeMouseOver(i, false); });
	});

	// ein Produkt zum Warenkorb hinzufügen +++++++++++++
	$$(".add2Warenkorb").each(function(i){
		i.observe('click', function(event){ callWarenkorb(i, i.readAttribute("produktId"), 1); });
	});

	// Warenkorb: per Select die Anzahl eines Artikels verändern
	$$(".shopWarenkorbSelectAnzahl").each(function(item) {
		item.observe("change", function(event){
			var f = item.up("form");
 			f.submit();
		});
	});

	/*// Felder für Lieferadresse sichtbar machen
	$("shopCheckLieferadresse").observe( "change", function(event){
		displayShopLieferadresse();
	} );*/

mouseRollOver();
subCat();

if ($('textReview'))
{
	$('textReview').observe('keydown', function(e){ 
		textCounter(this,$('remLen1'),200);
	 } );

	$('textReview').observe('keyup', function(e){ 
		textCounter(this,$('remLen1'),200);
	 } );
}

	// Sprachauswahl
	if ($("langChooserAlt"))
	{
		$("langChooserAlt").hide();
		$("langChooserImg").observe("click", function(e) {
			$("langChooserAlt").toggle();
		});
	}


}; // onload



function mouseRollOver()
{
	$$('.rollOver').each(function (i)
	{
		var index = i.src.lastIndexOf('.');
		if (index > -1) {var newSrc = i.src.substring(0, index)+'.mo'+i.src.substring(index);}
		
		if (newSrc)
		{
			var img = new Image();
			img.src = newSrc;
		}
		
		i.observe('mouseover', function (e)
		{
			if (newSrc) {i.src = newSrc;}
		})
		
		i.observe('mouseout', function (e)
		{
			i.src = i.src.replace('.mo.', '.');
		})
	});
}

// ********************************** FUNCTIONS ****************************************************************
function oeffnefenster(url) {
 fenster=window.open(url, "_blank", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes");
 fenster.focus();
 return false;
}


// Formularfelder überprüfen
function chkMail() {
	var chkOK = true;
	var chkMail = true;
	var chkEmpty = true;
	var chkCheckbox = true;
	var msg = "";

	$$(".chkEmpty").each( function(item){
		if($F(item)=="") {
			chkOK = false;
			chkEmpty = false;
			$(item.name.replace('s[', '').replace(']', '').replace('[', '')+'Arrow').style.display = "block";
		} else {
			$(item.name.replace('s[', '').replace(']', '').replace('[', '')+'Arrow').style.display = "none";
		}
	} );

	$$(".chkEmail").each( function(item){
                var reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+'(\\@)([a-zA-Z0-9\\-\\.]+)'+'(\\.)([a-zA-Z]{2,4})$');
                
		if(!reg.test($F(item)))	{
			chkOK = false;
			chkMail = false;
			$(item.name.replace('s[', '').replace(']', '').replace('[', '')+'Arrow').style.display = "block";
		} else {
			$(item.name.replace('s[', '').replace(']', '').replace('[', '')+'Arrow').style.display = "none";
		}
	} );

	$$(".chkEmptyCheckbox").each( function(item){
		if(!item.checked)	{
			chkOK = false;
			chkCheckbox = false;
			$(item.name.replace('s[', '').replace(']', '').replace('[', '')+'Arrow').style.display = "block";
		} else {
			$(item.name.replace('s[', '').replace(']', '').replace('[', '')+'Arrow').style.display = "none";
		}
	} );

	if(!chkEmpty) msg += ixTransJsempty;
	if(!chkMail) msg += ixTransJsmail;
	if(!chkCheckbox) msg += ixTransJsagb;
	if(msg!="") alert(msg);
	return chkOK;
}

// MO-Präfix hinzufügen/ entfernen ++++++++++++++++++++
	// flagAdd = true:  doo/foo.jpg -> doo/mo_foo.jpg
	// flagAdd = false: doo/mo_foo.jpg -> doo/foo.jpg
	// img: das Bildobjekt
	function imageChangeMouseOver(img, flagAdd) {
	var a = img.src.split('/');
	var anz = a.length;
	var ret = "";
	for(var i=0; i<anz; i++) {
		if(i<(anz-1)) ret += a[i] + '/';
		else {
			if(flagAdd) ret += "mo-" + a[i];
			else ret += a[i].replace(/^mo-/g, "");
		}
	}
	img.src = ret;
}



// +++++++++++++++++ SHOP-FUNKTIONEN +++++++++++++++++++++++++++++++++++++
// Ajax-Request: time() vom Server lesen und Warenkorb-Funktion aufrufen
// time(): verhindern, dass das gleiche Produkt unabsichtlich
// mehrmals (F5) im Warenkorb landet
function callWarenkorb(callerObj, productId, qty) {
	effectWarenkorbCaller(callerObj);
	var url = "/libShop/ajaxCmd.php";
	new Ajax.Request(url, {
		method: 'POST',
		postBody: 'cmd=getTime',
		onSuccess: function(transport) {
			_callWarenkorb(callerObj, productId, qty, transport.responseText);
		},
		onFailure: function(transport) {
			// Zeit konnte nicht gelesen werden
			alert(ixTransJsbasket+" (Err 0)");
		}
	});	
}

// Ajax-Request für Warenkorb
function _callWarenkorb(callerObj, productId, qty, t) {
		var url = "/libShop/ajaxAdd2Warenkorb.php";
		new Ajax.Request(url, {
 			method: 'POST',
 			postBody: 'shop_artikelid='+ productId +'&shop_anzahl='+ qty+'&shopname=ixtensaDemoShop&type=w&t='+t,
			onSuccess: function(transport) {
				$("warenkorbMenge").innerHTML = transport.responseText;
				effectWarenkorbAnzahl($("warenkorbMenge"));
			},
			onFailure: function(transport) {
				alert(ixTransJsbasket+" (Err 1)");
			}
		});
}

// Effekt: Aufruf Warenkorb-Caller -> nicht im IE6
function effectWarenkorbCaller(obj) {
	new Effect.Opacity(obj, { from: 1.0, to: 0.5, duration: 0.2 });
	new Effect.Opacity(obj, { from: 0.5, to: 1.0, duration: 0.7, queue: 'end' });
}

// Effekt auf Anzahl Produkte
function effectWarenkorbAnzahl(obj) {
	new Effect.Morph(obj, {style: 'color:#c5d302', duration: 0.2});
	new Effect.Morph(obj, {style: 'color:#ffffff', duration: 3.0, queue: 'end'});
}

// Felder für Lieferadresse sichtbar machen
function displayShopLieferadresse() {
	var v = $F("shopCheckLieferadresse");	
	if(v=="ja") {
		$("inputboxLieferadresse").show();
	} else {
		$("inputboxLieferadresse").hide();
	}
}

//**************************
//*** SPAMSCHUTZ ***  
//**************************


// UnCryptMailto() entschluesselt die Mail-Adresse, zu zuvor mit
// der PHP-Funktion encryptEmail() verschlÃ¼sselt wurde
// Anwendung:
/*
<?php $link="javascript:linkTo_UnCryptMailto('".encryptEmail("john@doe.de")."');"; ?>
<a href="<?php echo $link ?>">E-Mail an John Doe schreiben</a>
*/
 
// JS function for uncrypting spam-protected emails:
function UnCryptMailto(s) {	//
	var n=0;
	var r="";
	for(var i=0; i < s.length; i++) {
		n=s.charCodeAt(i);
		if (n>=8364) {n = 128;}
		r += String.fromCharCode(n-(1));
	}
	return r;
}

  // JS function for uncrypting spam-protected emails:
function linkTo_UnCryptMailto(s)	{	//
	location.href="mailto:"+UnCryptMailto(s);
}

//*************************************************************************************************************
// Dynamic Version by: Nannette Thacker 
// http://www.shiningstar.net 
// Original by :  Ronnie T. Moore 
// Web Site:  The JavaScript Source 
// Use one function for multiple text areas on a page 
// Limit the number of characters per textarea 
// Begin


function textCounter(field,cntfield,maxlimit) { 

	if (field.value.length > maxlimit) // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
		// otherwise, update 'characters left' counter
	else
		cntfield.value = maxlimit - field.value.length;
}

function moveDragObj(i) {
	var e = i.element;
	document.title = "left: " + e.getStyle("left") + ", top: " + e.getStyle("top") + ", id: " + e.id;
}


function hideSelect(id,hlId) {
	var display = document.getElementById(id).style.display;
	if(display == "none"){
		document.getElementById(id).style.display = "block";
		document.getElementById(hlId).style.backgroundImage = "url('/libImages/content/greyArrowSmall.png')";
		document.getElementById(hlId).style.color = "#4e4e4f";
		document.getElementById(hlId).style.textDecoration = "underline";
	}
	else{
		document.getElementById(id).style.display = "none";
		document.getElementById(hlId).style.backgroundImage = "url('/libImages/content/blueArrowSmall.png')";
		document.getElementById(hlId).style.color = "#156faf";
		document.getElementById(hlId).style.textDecoration = "none";
	}
}

function subCat()
{
	$$('.subCat').each(function (v)
	{
		v.style.backgroundImage = 'url(/libImages/content/arrowSmall.png)';
		v.siblings().each(function (v2) {v2.hide();});
		v.observe('click', function (e)
		{
			if (this.style.backgroundImage == 'url(/libImages/content/arrowSmall.png)') {this.style.backgroundImage = 'url(/libImages/content/arrowSmallDown.png)';}
			else {this.style.backgroundImage = 'url(/libImages/content/arrowSmall.png)';}
			this.siblings().each(function (v2) {v2.toggle();});
		});
	});
}

// JS-Fehlermeldungen ++++++++++++++++++++++++++++++++++++++
// während der Entwicklung Komentare entfernen
// in der error.php die eig. Email eintragen
// beim Livegehen wieder ausschalten, um nicht die ganzen
// Fehler von exot. Browsern zu erhalten
//window.onerror=callAjaxError; // IE
//window.onError= callAjaxError; // NS

function callAjaxError(msg, url, line) {
  new Ajax.Request('/libPhp/ajax/error.php', 
 {
   method: 'post',
   postBody: 'appcode='+navigator.appCodeName+"&ver="+navigator.appVersion+"&usr="+navigator.userAgent+"&JsErrorUrl="+url+"&JsErrorLine="+line+"&JsErrorMsg="+msg,
   asynchronous: true,
   onSuccess: function (t)	{}
 });
  return false;
}