// Haws Javascript
// Author: Daniel Fiechter
// for www.pcard.ch

/**
* Allgemeine Funktionen
*/
function Utility() {
	this.loading	= function(where) {
		$(where).innerHTML	= '<img src="data/icons/ladebalken.gif" />';
	}
}

var Loading = new Utility;

var Cloud	= new Popup;

// ==============================================================
// GLOBAL
// ==============================================================

document.observe("dom:loaded", function() {
	/**
	* Navcontainerinhalt laden bei Mouseover über Navpunkt
	*/

	/**
	* Subelemente (Kategorie) erkennen und class wechseln
	* Produktnavigation laden
	* Soll sichtbar bleiben bei mouseout
	* Falls über anderes Subelement gefahren wir -> ausblenden
	*/
	
	// Alle Navcontainer laden
	var allContainers	= document.getElementsByClassName('navpoint');
	var cID	= new Array();
	for (var i = 0; i < allContainers.length; i++) {
		var id = allContainers[i].readAttribute('id');
		//$(id).removeClassName('active');
		cID[i]	= id;
	}
	for (var i = 0; i < allContainers.length; i++) {
		allContainers[i].observe('mouseenter', function(event) {
			var id	= Event.element(event).readAttribute('id');
			var katID	= id.substr(1, 1);
			
			var url = 'templates/navcontent.tpl.php';
			var pars = 'id=' + katID;
				
			var myAjax = new Ajax.Request(
					url, 
					{
						method: 'get', 
						parameters: pars, 
						onComplete: function(o) {
							//alert(o.responseText);
									var text	= o.responseText;
									$('navcontent' + katID).innerHTML = text;
						}
			});
			
			var allLinks = document.getElementById(id).getElementsByClassName('a_load_prod');
			var aID	= new Array();
			for (var i = 0; i < allLinks.length; i++) {
				var id = allLinks[i].readAttribute('id');
				aID[i]	= id;
			}
			
			// erste Kategorie anzeigen
			var firstID2	= aID[0].substr(1, aID[0].length - 1);
			$(aID[0]).addClassName('active');
			UpdateProduktliste(firstID2, 'p' + katID);
			
			// Bei Mouseover
			for (var i = 0; i < allLinks.length; i++) {
				allLinks[i].observe('mouseenter', function(event) {
					aID.each(function(linkID) {
						$(linkID).removeClassName('active');
					});
					var id	= Event.element(event).readAttribute('id');
					Event.element(event).addClassName('active');
					ID2	= id.substr(1, id.length - 1);
					
					// AJAX
					UpdateProduktliste(ID2, 'p' + katID);
				});
			}
		});
	}
	
	
	
	/**
	* Pop Up mit Zoom Bild aus Produkteseite
	*/
	if ($('produktbild') != null) {
		$('produktbild').observe('click', function(event) {
			Cloud.popup();
			var src	= $('produktbild').childElements()[0].getAttribute('src').split('/');
			var newSrc	= src[1].split('_');
		/*	alert ("src: "+newSrc + src[0] + '/big_' + newSrc[1]); */
			$('popUp').innerHTML	+= '<img style="margin-left:auto;margin-right:auto;" src="' + src[0] + '/big_' + newSrc[1] +'" />';
		});
	}
	
	/**
	* Newsletter
	*/
		$('newsletter').observe('click', function(event) {
			Cloud.popup();
			var url = 'templates/newsletter.tpl.php';
			var pars = '';
				
			var myAjax = new Ajax.Request(
					url, 
					{
						method: 'get', 
						parameters: pars, 
						onComplete: function(o) {
									$('popUp').innerHTML += o.responseText;
		
						}
					});
		});

	
	if ($('popUpClose') != null) {
		$('popUpClose').observe('click', function(event) {
			Cloud.popdown();
		});
	}
	
	/**
	* Welcome Pop Up
	*/
	if ($('startscreen') != null) {
		Cloud.popup();
		
		var url = 'templates/welcome.tpl.php';
		var pars = '';
			
		var myAjax = new Ajax.Request(
				url, 
				{
					method: 'get', 
					parameters: pars, 
					onComplete: function(o) {
								$('popUp').innerHTML += o.responseText;
	
					}
				});
	}
	
	/**
	* Suche
	*/
	$('searchinput').observe('keyup', function(event) {
		if ($F('searchinput').length > 1) {
			$('searchoutput').show();
			Loading.loading($('searchoutput'));
			
			var url = 'ajax/suche.php';
			var pars = 'value=' + $F('searchinput');
				
			var myAjax = new Ajax.Request(
					url, 
					{
						method: 'get', 
						parameters: pars, 
						onComplete: function(o) {
									$('searchoutput').innerHTML = o.responseText;
		
						}
					});
		}
		else {
			$('searchoutput').hide();
		}
	});
	
	document.observe('click', function(event) {
		$('searchoutput').hide();
	});
});



// ==============================================================
// NAVIGATION
// ==============================================================
/**
* AJAX Funktion für Aufruf Produktliste
* Anzeige in mittlerer Spalte
*/
function UpdateProduktliste(katID, where) {
	//Loading.loading(where);
	
	var url = 'ajax/navigation.php';
	var pars = 'id=' + katID;
	var imageID	= where.substr(1, where.length - 1);
		
	var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				parameters: pars, 
				onComplete: function(o) {
							var json = o.responseText.evalJSON();
							$(where).innerHTML = '';
							
							var subnav	= document.getElementsByClassName('subnav' + imageID);
							
							var produID	= new Array();
							for (var i = 0; i < json.res.length; i++) {
								$(where).innerHTML += '<a href="' + json.res[i].url + '" class="a_load_details" id="prod' + json.res[i].id + '_' + i + '">' + json.res[i].titel + '</a><br />';
								produID[i]	= json.res[i].id;
								
								// ersten Eintrag anzeigen
								if (i == 0) {
									$('prod' + json.res[i].id + '_' + 0).addClassName('active');
									
									subnav[0].href	= json.res[i].url;
									subnav[1].href	= json.res[i].mont;
									subnav[2].href	= json.res[i].zeich;
									subnav[3].href	= json.res[i].url + "&key=ersatz";
									subnav[4].href	= json.res[i].url + "&key=zub";
									
									$('image-p' + imageID).innerHTML = '<img ' + json.res[i].size + ' src="' + json.res[i].pic + '" />';
									$('linkBroch' + imageID).href	= 'http://issuu.com/pcard/docs/hawskatalog_1_9_2010?viewMode=magazine&mode=embed&pageNumber=' + json.res[i].broch;
								}
							}

							var allProducts = document.getElementsByClassName('a_load_details');
							
							for (var i = 0; i < allProducts.length; i++) {
								allProducts[i].observe('mouseenter', function(event) {
									var y = 0;
									produID.each(function(prodID) {
										$('prod' + prodID + '_' + y).removeClassName('active');
										y++;
									});
									var prod	= Event.element(event).readAttribute('id');
									Event.element(event).addClassName('active');
									
									var prodID	= prod.substr(1, prod.length - 1);
									var pos		= prodID.split("_");
									
									// Image anpassen
									$('image-p' + imageID).innerHTML = '<img ' + json.res[pos[1]].size + ' src="' + json.res[pos[1]].pic + '" /> ';
									
									$('linkBroch' + imageID).href	= 'http://issuu.com/pcard/docs/haws_brochure?viewMode=magazine&mode=embed&pageNumber=' + json.res[pos[1]].broch;
									
									// Subnavlinks anpassen
									subnav[0].href	= json.res[pos[1]].url;
									subnav[1].href	= json.res[pos[1]].mont;
									subnav[2].href	= json.res[pos[1]].zeich;
									subnav[3].href	= json.res[pos[1]].url + "&key=ersatz";
									subnav[4].href	= json.res[pos[1]].url + "&key=zub";
								});
							}
					}
			});
}

/**
* AJAX Funktion für Aufruf Produktliste
* Anzeige in mittlerer Spalte
*/
function UpdateNavigation(katID, where) {
	Loading.loading(where);
	
	var url = 'templates/navcontent.tpl.php';
	var pars = 'id=' + katID;
		
	var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				parameters: pars, 
				onComplete: function(o) {
					//alert(o.responseText);
							var text	= o.responseText;
							$(where).innerHTML = text;
							
							/**
							* Subelemente (Kategorie) erkennen und class wechseln
							* Produktnavigation laden
							* Soll sichtbar bleiben bei mouseout
							* Falls über anderes Subelement gefahren wir -> ausblenden
							*/
							var allLinks = document.getElementsByClassName('a_load_prod');
							
							var aID	= new Array();
							for (var i = 0; i < allLinks.length; i++) {
								var id = allLinks[i].readAttribute('id');
								aID[i]	= id;
							}
						
							
							// erste Kategorie anzeigen
							alert(aID[0]);
							var firstID2	= aID[0].substr(1, aID[0].length - 1);
							$(aID[0]).addClassName('active');
							UpdateProduktliste(firstID2, 'p' + katID);
							
							for (var i = 0; i < allLinks.length; i++) {
								allLinks[i].observe('mouseover', function(event) {
									var id	= Event.element(event).readAttribute('id');
									Event.element(event).addClassName('active');
									aID.each(function(linkID) {
													  
										if (linkID != id)
											$(linkID).removeClassName('active');
										else {
											ID2	= linkID.substr(1, linkID.length - 1);
											$(linkID).addClassName('active');
										}
									});
									// AJAX
									UpdateProduktliste(ID2, 'p' + katID);
								});
								
								/*allLinks[i].observe('mouseout', function(event) {
									//$(where).style.width	= '220';
								});*/
							}
				}
			});
}

// ==============================================================
// DIVERS
// ==============================================================
/**
* Newsletter Mail speichern
*/
function saveNewsletter() {
	var url = 'ajax/newsletter.php';
	var pars = '';
		
	var myAjax = new Ajax.Request(
			url, 
			{
				method: 'post', 
				postBody: $('newsletterform').serialize(), 
				onComplete: function(o) {
							$('contentNewsletter').innerHTML = o.responseText;

				}
			});
}

// ==============================================================
// DESIGN
// ==============================================================


function Popup() {
	// ID Blackcloud
	var blackcloud	= $('blackcloud');
	
	// ID Pop Up Fenster
	this.content	= $('popUp');
	
	
	// Popup öffnen
	this.popup = function() {
		new Effect.Appear($('blackcloud'), { duration: 0.1, from: 0, to: 0.5 });
		new Effect.Appear($('popUp'), { duration: 0.1, from: 0, to: 1 });
	}
	
	// Popup schliessen
	this.popdown = function() {
		new Effect.Fade(blackcloud, { duration: 0.1, from: 0.5, to: 0 });
		new Effect.Fade(content, { duration: 0.1, from: 1, to: 0 });
	}
}
