// JavaScript Document
// Benoetigt min. Mootools v1.2

var navi; // wegen IE

// Navigation
window.addEvent('domready', function() {
	//new Imageflow('imageflow');
	//alert(docHeight);
	navi = $('naviwrapper');
	var bgi = $('bgi');
	//if (bgi && !document.all) {bgi.style.minHeight = docHeight;}
	if (navi) {
		var sprachen = $('sprachauswahl');
		var nava = $$(navi.getElementsByTagName('dd'));
		var naviFx = new Fx.Tween(navi, {link:'cancel',duration:'long', transition:'expo:out'});
		//if (!document.all) {	
		Indigo.setDocHeight();
		//}
		
		// Navigationspunkte
		nava.each(function(el) {
			var navaFx = new Fx.Tween(el, {duration:400, wait:false});
			/*el.addEvent('mouseenter', function(){
				navaFx.start('background-color', '#000000');
			});*/
			el.addEvent('mouseout', function(){
				el.setStyle('background-color', '#000000');
				navaFx.start('background-color', '#222222');
				var ende = (function() {
					el.removeProperty('style');
				}).delay(500);
			});
		});
	if (sprachen) {Indigo.blende('sprachauswahl');}
	if (!document.all && $('mdc')) {	Indigo.blende('mdc','mdcw'); }
	if ($('pd')) {
		Indigo.products.observe('pd');
	}
	//Indigo.keepPos('navi');
	
	/*nava.each(function(el) {el.addEvent('mouseover', function(){	el.highlight('#222222','#000000');});});
	Indigo.blende(sprachen).hide();
	sprachen.parentNode.addEvent('click', function() { sprachen.setStyle('display', 'block'); alert(sprachen); 
	Indigo.blende(sprachen);});*/

	} // endif navi
	//Indigo.resultcount('term','omnisearch','xhr=search&langID=1');
	// Downloadbilder-Liste gestreift
	Indigo.striped_list('.material');
	// Downloadbilder-Größe
	Indigo.scontrol('download','material');
	// Downloadbilder-Klick
	Indigo.jump2('#material li','img',320);
	// Crosselling
	Indigo.hscroll('xsell_inhalt');
	if (!(Browser.Engine.trident && (Browser.Engine.version <= 4))) {
		Indigo.corners('.detail');
	}
});

var Indigo = {
/* ------- XHR Database Access ------- */
	req: new Request.HTML({
		url: 'xhrdba.php',
		method: 'get',
		onSuccess: function(html) {
			var elem = $(Indigo.req.anker);
			//Clear the text currently inside 'elem'.
			elem.set('html', '');
			//Inject the new DOM elements into 'elem'.
			elem.adopt(html);
		},
		//Our request will most likely succeed, but just in case, we'll add an
		//onFailure method which will let the user know what happened.
		onFailure: function() {	elem.set('text', 'The request failed.');	}
	}),
	xhrdba: function(anker,getparam,add) {
		/* anker=ID des zu füllenden Elements
			getparam=zu verschickende GET Parameter
			add=Adresse der zu ladenden Datei
		*/
		//new Event(e).stop(); //cancel link
		Indigo.req.anker = anker;
		if (this.add) {Indigo.req.set('send', {url: add, update: $(anker)});};
		(getparam)? Indigo.req.send(getparam) : Indigo.req.send();
	},
/* ------- XHR Suchergebnisse ------- */
	resultcount: function(field,target,param) {
		/* field = zu lesendes Formularelement
			target = Elternelement für Ausgabe-<div>
		*/
		if (!$(field) || !$(target)) { 
			//alert('Indigo.resultcount error.');
			return;
		}
		else {
			var field = $('term');
			var countdiv = new Element('div', {'id': 'xhrresponse'});
			//countdiv.addEvent('keyup', function() {
			countdiv.set('load', {async: false, autoCancel: true});
			field.addEvent('focus', function() { 
				if (this.value== this.defaultValue) {field.value='';}
				field.style.width=170+'px'});
			field.addEvent('blur', function() { this.removeAttribute('style');});
			field.addEvent('keyup', function() {
				var begriff = field.value;
				if (begriff.length > 2) {
						/*var count = new Request.HTML({
											url: 'xhrdba.php',
											onSuccess: function(html) { return html; }
											}).get({'xhr':'count'});*/
						//later = (function() {
					countdiv.load('xhrdba.php?'+param+'&lookfor='+encodeURI(begriff));
												//}).delay(1000);
					(!$('xhrresponse'))? $(target).grab(countdiv) : countdiv.replaces(countdiv);
						//Indigo.list_stripe.delay(1500,this,'#countdiv'); // hässlich - complete Event abgreifen wär besser
					Indigo.striped_list('xhrresponse'); // geht nur bei sync request
					var slide = new Fx.Slide(countdiv).slideIn();
					//field.addEvent('blur', function() {	slide.slideOut(); });
					$('omnisearch').addEvent('mouseleave', function() {
						slide.slideOut(); field.blur(); });
						field.addEvent('focus', function() { slide.slideIn(); });
					}
				}); // end field.addEvent
		} // end else
	},
/* ------- gestreifte Listen ------- */
	striped_list: function(start) {
		/* start = css Selector */
		if ($$(start)) {
			$$(start+' li:nth-child(even)').set('class', 'even');
			$$(start+' li:nth-child(odd)').set('class', 'odd');
			/*var list = start + ' li:nth-child(even)';
			$$(list).set('class', 'even');*/
		}
	},
	blende: function(element,wrap) {
			var el = $(element);
			var vert = new Fx.Slide( el, {link:'ignore',duration:'normal', transition:'quad:in'} ).hide();
			if (wrap) {
				$(wrap).addEvent('click', function() {
					vert.toggle();
				});
			}
			else {
				// 2x parent weil Mootools ein <div> dazwischen packt.
				el.parentNode.parentNode.addEvent('click', function() {
					vert.toggle();
				});
			}
			/*Indigo.blende = function() {return vert};
			return vert;*/
	},
	blende2: function(element,wrap) {
			var el = $(element);
			var vert = new Fx.Slide( el, {link:'ignore',duration:'normal', transition:'quad:in'} ).hide();
			if (wrap) {
				$(wrap).addEvent('click', function() {
					vert.toggle();
				});
			}
			else {
				// 2x parent weil Mootools ein <div> dazwischen packt.
				el.parentNode.parentNode.addEvent('click', function() {
					vert.toggle();
				});
			}
			/*Indigo.blende = function() {return vert};
			return vert;*/
	},
	scontrol: function(hook,before) {
		/* 
			hook = ID-String des parent Elements
			before = ID-String des Elements, vor dem eingefügt werden soll
		*/
		if($(before)) {
			var sknob = new Element('div', { 'class':'knob'} );
			var sctrl = new Element('div', {	'class':'slider', 'html':'&larr; Miniaturengröße &rarr;'}	);
			var alleli = $$('#'+before+' li');
			sctrl.appendChild(sknob);
			$(hook).insertBefore(sctrl,$(before));
			// Create the new slider instance
			new Slider(sctrl, sknob, {
				steps: 29,	// Maximum
				range: [12],	// Minimum
				onChange: function(value){
					// Everytime the value changes
					alleli.each(function(bla) {
						bla.style.width=value+'%';
					});
					Indigo.setDocHeight();
				}
			});
		}
	},
	jump: function(selector,clickOn,maxWidth) {
		if(!document.all) {	
			var alleli = $$(selector);
			alleli.each(function(el) {
			el.getElementsByTagName(clickOn)[0].addEvent('click', function(e){
					if (this.vorher) {
						el.setStyle('width',this.vorher+'px');
						el.getElementsByTagName('dt')[0].setStyle('display','none');
						el.erase('class');
						delete this.vorher;
						return;
					}
					this.vorher =e.target.width;
					var breite = parseInt(el.offsetWidth);
					//(breite==320)?	el.setStyle('width',breite+'px');
					breite += maxWidth-breite;
					el.setStyle('width',breite+'px');
					el.set('class','jump');
					el.getElementsByTagName('dt')[0].setStyle('display','block');
				});
			});
		}
	},
	jump2: function(selector,clickOn,maxWidth) {
		if(!document.all) {
			var alleli = $$(selector);
			alleli.each(function(el) {
				el.setStyle('cursor','pointer');
				el.getElementsByTagName(clickOn)[0].addEvent('click', function(e){
					if ($('jump')) {
						$('jump').dispose();
						return;
					}
					this.vorher =e.target.width;
					var breite = parseInt(el.offsetWidth);
					//(breite==320)?	el.setStyle('width',breite+'px');
					breite += maxWidth-breite;
					var neu = el.clone();
					neu.addEvent('click', function(e){
						//this.dispose();
						this.destroy();
					});
					neu.setStyle('width',breite+'px');
					neu.erase('class');
					neu.firstChild.erase('title');
					neu.set('id','jump');
					neu.getElementsByTagName('dt')[0].setStyle('display','block');
					$('downloads').appendChild(neu);
				});
			});
		}
	},
	hscroll: function(e) {
		/* e = [String] element-ID */
		var el = $(e);
		if (el && (el.getElementsByTagName('img').length > 5)) {
//		if (el && (el.scrollWidth > 750)) {
			el.getParent().setStyles({
				whiteSpace:'nowrap',
				backgroundImage:'url(http://www.indigosnow.de/img/bg_xsell.png)',
				backgroundRepeat:'no-repeat',
				backgroundPosition:'center 31px'
			});
			var scroll1 = new Scroller(el, {area:60});
			//scroll1.start();
			el.addEvent('click', scroll1.stop.bind(scroll1));
			el.addEvent('mouseover', scroll1.start.bind(scroll1));
			
			// allow mousewheel for scrolling
  		el.getParent().addEvent('mousewheel', function(ev) {
        ev.preventDefault();
        if(ev.wheel<0){
          el.scrollLeft+=50;
        } else {
          el.scrollLeft-=50;
        }
      });
		}
		
	},
	vscroll: function(el) {
		/* e = [String] element-ID */
		var el = $(el);
		var wrap1 = new Element('div',{'class': 'vscroll1' });
		var wrap2 = new Element('div',{'id':'vscroll2', 'class': 'vscroll2' });
//		if (el && (el.getElementsByTagName('img').length > 5)) {
		//if (el && (el.scrollHeight > 50)) {
			/*el.parentNode.setStyles({
				whiteSpace:'nowrap',
				backgroundImage:'url(img/bg_xsell.png)',
				backgroundRepeat:'no-repeat',
				backgroundPosition:'center 31px'
			});*/
		wrap2.wraps(el);
		wrap1.wraps(wrap2);
		var scroll1 = new Scroller(wrap2, {area:30});
		//scroll1.start();
		wrap2.addEvent('click', scroll1.stop.bind(scroll1));
		wrap2.addEvent('mouseover', scroll1.start.bind(scroll1));
		var firstA = wrap2.getElement('a');
		var evt = firstA.getAttribute('onclick').toString().split("'");
		//evt.split("'");
		Indigo.puben(firstA,evt[1]);
		//}
	},
	products: {
		// prices object aus domready event;
		observe:	function(formID) {
			//alert('laeuft!');
			var cbs = $$('#'+formID+' input[type=checkbox]');
			var price = $('price');
			var myFx = new Fx.Tween($('price'),{'duration':'150'});
			//if (cbs.length > 0) {
				price.value = (parseFloat(price.value)<3)? parseFloat(price.defaultValue)*1000 : parseFloat(price.value);
				cbs.each(function(cb) {
					// needed for IE
					cb.addEvent('click', function(e) {
						this.blur();
					});
					cb.addEvent('change', function(e) {
						var temp = parseFloat(price.value);
						var boxval = parseFloat(this.value);
						myFx.start('color', '#6DAB24');
						(function(){myFx.start('color', '#ddd')}).delay(250);
						if(!this.checked){
							price.value = temp - boxval;
						}
						else {
							price.value = temp + boxval;
						}
					})
				})
			//}
		/*	document.forms[formID].diamond.addEvent('change', function() {
				if
				document.forms[formID].price.value = document.forms['produktdetail'].p_diamant.value;*/
		}
	},
	puben: function(el,imgurl) {
		/*
			el = Angeklicktes Element
			imgurl = Pfad zum Bild
		*/
		//var div = new Element('div',{id:'vorschau'});
		//var text = (el.lastChild!='undefined')? el.lastChild.innerHTML : el.innerHTML;
		var bild = new Element('img',{'src': imgurl, 'alt': el.lastChild.nodeValue });
//		var pdflink = el.clone(false); mag IE nicht
		var pdflink = el.cloneNode(false);
		pdflink.removeAttribute('onclick');
		pdflink.setAttribute('target','_blank');
		pdflink.appendChild(bild);
		$('vorschau').empty().adopt(pdflink);
	},
	corners: function(sel) {
		$$(sel).each(function(el){
			var oben = new Element('img', {'src':'http://www.indigosnow.de/img/round_top.png','class':'oben','alt':''});
			var unten = new Element('img', {'src':'http://www.indigosnow.de/img/round_bottom.png','class':'unten','alt':''});
			var h = el.offsetHeight;
			el.setStyles({
				overflow:'visible', borderTop:'none', borderBottom:'none',
				paddingTop:'0px', marginTop:7+'%'
				//marginTop:h/-2,
				//position:'absolute',
				//top:'50%'
			});
			if ( $('produkt') ) {
				el.setStyles({ padding:'40px 25px 0' });
			}
			el.appendChild(unten);
			oben.inject(el,'top');
		});
	},
	formcheck: function(frm) {
		if (document.forms[frm].snemail.value!='' && document.forms[frm].message.value!='') {
			//alert('Ihre Nachricht wurde abgeschickt');
			document.forms[frm].submit();
		}
		else {
			alert('Bitte überprüfen Sie ihre Eingaben');
			return false;
		}
	},
	keepPos: function(elid) {
		var nav = $(elid), offset;
		var mTop = parseInt(nav.getStyle('margin-top'));
		var navFx = new Fx.Tween(nav, {
						property: 'margin-top',	link: 'cancel',
						fps:30, duration:'short', transition:'circ:in:out'
						});
		window.addEvent('scroll', function() {
			(function() {
				(window.pageYOffset)? offset = window.pageYOffset : offset = document.documentElement.scrollTop;
				if (offset <= mTop) {
					nav.style.marginTop = mTop +'px';
				}
				else if (offset > mTop) {
					//nav.style.marginTop = window.scrollY +20 +'px';
					//(function() {
						navFx.start(offset +20 +'px')
				}
			}).delay(150);
		})
	},
	setDocHeight: function() {
		var docHeight = document.getElementsByTagName('html')[0].scrollHeight+'px';
		navi.style.height = docHeight;
	}
} // ende Indigo

/*function blende() { //Konstruktor
		var vert;
		var start = function(element,trigger) { //.start Methode
			var el = $(element);
			vert = new Fx.Slide( el, {link:'ignore',duration:'normal', transition:'quad:in'} ).hide();
			if (trigger) {
				$(trigger).addEvent('click', function() {
					vert.toggle();
				});
			}
			else {
				// 2x parent weil Mootools ein <div> dazwischen packt.
				el.parentNode.parentNode.addEvent('click', function() {
					vert.toggle();
				});
			}
			//Indigo.blende = function() {return vert};
		}
}//ende blende
*/

	//bDown = new Fx.Slide(el, {link:'ignore',duration:'normal', transition:'quad:in'});
	//start: function() { bDown.toggle(); }


/*var monibreite=window.screen.width, monihoehe=window.screen.height;
if (monibreite >= 1024) {
	var fensterb = document.documentElement.clientWidth, fensterh = document.documentElement.clientHeight;
	//alert(fensterh+' hoch und '+fensterb+' breit');
	if (fensterh <= 768 || fensterb <= 1024) {
		window.self.moveTo((monibreite/2)-512,(monihoehe/2)-384);
		window.resizeTo(1024,768);
	}
}*/

