// JavaScript Document
window.addEvent('domready', function() {
	// Mouseover effects voor vlaggen
	$$('img.flag').each(function(el) {
		// var current_lang komt uit de html template
		// Geselecteerde taal weergeven
		if(current_lang == $(el).get('alt')) {
			$(el).setOpacity(1.0);
		} else {
			// Transparant maken
			$(el).setOpacity(0.5);
			// Mouse events toevoegen
			$(el).addEvents({
				'mouseover': function() {
					this.setOpacity(1.0);
				},
				'mouseout':	function() {
					this.setOpacity(0.5);
				}
			});
		}
	});

	// Header clickbaar maken
	$('header_click').addEvent('click', function() {
		location.href = '/';
	});
	
	// Maak CMS link
	if($('cmslink')) {
		$('cmslink').addEvent('click', function() {
			window.open('http://cms.depoort.nl/index.php?id=109','CMS','status=no,toolbar=no,width=300,height=120');
		});
	}
	
	if($('dealer_login')) {
		$('dealer_login').addEvent('click', function() {
			location.href = '/dealers';
		});
	}
	
	var el = 'topmenu_' + erc_topmenu_selected;
	if($(el)) {
		$(el).set('class', 'selected');
	}
	
	// Popup links maken
	$$('a[target=popup]').each(	function(el) {
		$(el).store('href', $(el).get('href'));
		$(el).removeProperty('target');
		$(el).addEvent('click', function(e) {
			e.stop();
			window.open(this.retrieve('href'),'specs','width=1000,height=750,menubar=no,scrollbars=yes,fullscreen=no,resizable=yes');
		});
	});

	if($('submenu_container')) {
		// Maak slide effecten aan voor de submenu's
		$$('div.submenu_div').each(	function(el) {
			var myFx = new Fx.Slide($(el).getElement('div'),{transition: Fx.Transitions.Quint.easeOut, 'link': 'cancel'}).hide();
			$(el).store('fx_slide', myFx);

			// Maak gebruik van de mouseenter en mouseleave events
			$(el).addEvents({
				'mouseenter': function() {
					myFx.slideIn();
				},
				'mouseleave': function() {
					myFx.slideOut();
				}
			});
		});

		// Schakel slide effect voor submenu afhankelijk van hoofdmenu
		$$('#topmenu div[id^=topmenu_btn]').addEvents({
			'mouseenter': function() {
				// topmenu_btn is 11 posities
				var id = 'submenu' + this.get('id').substr(11);
				$(id).fireEvent('mouseenter');
			},
			'mouseleave': function() {
				var id = 'submenu' + this.get('id').substr(11);
				$(id).fireEvent('mouseleave');
			}
		});

		// Maak submenu_container weer zichtbaar
		$('submenu_container').setStyle('visibility','visible');
	}
	
	// Sluit knop in popup activeren
	if($('sluit_knop')) {
		$('sluit_knop').addEvent('click', function() {
			window.close();
		});
		// Header click event verwijderen
		$('header_click').removeEvents();
		// Cursor herstellen
		$('header_click').setStyle('cursor','default');
	}
	
	// Mogelijkheid tot opvragen informatie pop-up over een item
	var vergrootglaswijzerPopup = function() {
		if($('fotolijst_middlecenter')) {
			$('fotolijst_middlecenter').setStyle('cursor', 'default');
			$('fotolijst_middlecenter').removeEvents('click');
		}

		if($('vergrootglaswijzer')) {
			var parent = $('vergrootglaswijzer').getParent();
			if($(parent)) {
				var href = parent.get('href');
				$(parent).removeProperty('href');
				// Popup functie
				var popup = function(e) {
					e.stop();
					window.open(href,'specs','width=1000,height=750,menubar=no,scrollbars=yes,fullscreen=no,resizable=yes');
				};
				// Popup toekennen aan keuzewijzer
				$(parent).addEvent('click',	popup);
	
				// Maak ook de foto klikbaar
				if(href.length > 0 && $('fotolijst_middlecenter')) {
					$('fotolijst_middlecenter').setStyle('cursor', 'pointer');
					$('fotolijst_middlecenter').addEvent('click', popup);
				}
			}
		}
	}
	vergrootglaswijzerPopup();
	
	// Flash video tonen indien opgegeven
	// Alleen bij het grote fotolijstje de flash film tonen
	if($('flashmovie') && $('flashobjectoverlay') && $('flashobject') && $('flashobject').get('title') && $('fotolijst_big')) {
		var parent = $('flashmovie').getParent('div');
		
		var settings = {width: 336, height: 264, player: '/layout/flash/player/default.swf'};
		if($(parent).get('id') == 'fotolijst_big') {
			settings.width = 435;
			settings.height = 320;
			settings.player = '/layout/flash/player/popup.swf';
		}
		
		$('flashobjectoverlay').setStyle('width', settings.width + 'px');
		$('flashobjectoverlay').setStyle('height', (settings.height - 40) + 'px');
		
		var flashFile = $('flashobject').get('title');
	/*									
		$('flashobjectoverlay').addEvent('click', function() {
			location.href = '/movie/' + encodeURIComponent(flashFile.replace(/\.flv$/,''));
		});
	*/
		$('flashobjectoverlay').set('opacity', 0.000001);
			var flash = new Swiff(settings.player, {
			id: 'moviePlayer',
			width: settings.width,
			height: settings.height,
			vars: {
				flvurl: $('flashobject').get('title')
			}
		});
		$('flashobject').set('title', '');
		flash.inject($('flashobject'));
	}
	// Slideshow bij popup maken
	else if($('fotolijst_big') && fotos.length > 0) {
		// Background image verwijderen
		$('fotolijst_big_middlecenter').setStyle('background-image','none');
		// Selecteer de spacer
		var img_container = $('fotolijst_big_middlecenter').getChildren()[0];
		
		$(img_container).set('src',fotos[0].uri);
		$(img_container).set('width',fotos[0].width);
		$(img_container).set('height',fotos[0].height);
		// Alt wordt als index teller gebruikt
		$(img_container).store('foto_index', 0);
		
		/*
		var myEffect = new Fx.Morph($(img_container), {duration: 'long', transition: Fx.Transitions.Sine.easeOut, onComplete: function(){}});
		 
		myEffect.start({
			'opacity': [1.0,0.0]
		});*/
		
		var myFxOut = new Fx.Morph($(img_container), {	
			duration: 'long',
			onComplete:	function() {
				if($(img_container).get('opacity') == 0) {
					var next = parseInt($(img_container).retrieve('foto_index')) + 1;
					if(next >= fotos.length) {
						next = 0;
					}

					$(img_container).set('src', fotos[next].uri);
					$(img_container).set('width', fotos[next].width);
					$(img_container).set('height', fotos[next].height);
					$(img_container).store('foto_index', next);
				}
				
				if($(img_container).get('opacity') == 0) {
					myFxOut.start({'opacity': [0.0,1.0]});
					} else {
					(function() {
						myFxOut.start({'opacity': [1.0,0.0]});
					}).delay(2000);
				}
			}
		});
	
		if(fotos.length > 1) {
			(function() {
				myFxOut.start({'opacity': [1.0,0.0]});
			}).delay(2000);
		}
	
	}
	// Item rotatie 
	else if($('itemlijst') && $('itemrotate') && erc_items_interval > 0) {
		var qs = query_string();
		// Als een item is opgegeven dan geen items roteren
		if(!$defined(qs['item']) && erc_items.length > 0) {
			// Tussenpozen voor wisselen items
			var interval = erc_items_interval;
			
			// Private function die er voor zorgt dat currentIndex
			// wordt geupdate en wordt geretouneerd
			var itemIndex = new function() {
				var currentIndex = 0;
				
				return function() {
					currentIndex++;
					if(currentIndex >= erc_items.length) {
						currentIndex = 0;
					}
					return currentIndex;
				}
			}
	
			fotoContainer = $('fotoSpacer').getParent('div');
			var myFx = new Fx.Morph($(fotoContainer), {
				duration: 'normal',
				onComplete:	function() {
					var delayInterval = interval;
					// Als de foto is weg gefade dan moet het itemIndex worden geupdate
					// De interval voor het faden wordt op 0 gezet (terug faden = instant)
					// Tevens wordt de foto geupdate
					if($(fotoContainer).get('opacity') == 0.0) {
						delayInterval = 0;
						myFx.itemIndex = itemIndex();
						
						var url = null;
						if(erc_items[myFx.itemIndex].fotos.length == 1) {
							url = erc_items[myFx.itemIndex].fotos[0].url + erc_items[myFx.itemIndex].fotos[0].filename;
						}
						
						$(fotoContainer).setStyle('background-image', 'url('+url+')');
					}
	
					// Na een delay het effect inschakelen
					// Afhankelijk van de transparantie van de foto wordt bepaald
					// welke kan op wordt gefade. Bij fade-in worden de overige gegevens geupdate
					(function() {
						var opacity = [0, 0];
						switch($(fotoContainer).get('opacity')) {
							case 1.0:
								opacity = [1.0, 0.0];
							break;
							case 0.0:
								opacity = [0.0, 1.0];
								
								// De verticale foto titel updaten
								var fotoTitel = $('fotolijst_special').getElement('img[class=fotokader_titel]');
								$(fotoTitel).set('src', erc_items[myFx.itemIndex].titleImage);
								
								// Alle elementen verwijderen behalve de verticale titel
								$('fotolijst_special').getElements('*[class!=fotokader_titel]').dispose();
								
								// Bepaald het SPECIAL icoon; popup of niet
								if(erc_items[myFx.itemIndex].doPopup) {
									var el_img = new Element('img', {
										'src': '/layout/images/spacer.gif',
										'width': 1,
										'height': 50,
										'alt': ''
									});
									
									var el_a   = new Element('a',	{'href': '?i&ercid=' + erc_items[myFx.itemIndex].root_id}); 
									var el_img2= new Element('img',	{
										'src': '/layout/images/vergrootglaswijzer.png',
										'width': 31,
										'height': 19,
										'alt': 'Klik voor meer informatie',
										'class': 'vergrootglaswijzer',
										'id': 'vergrootglaswijzer'
									});
									
									el_img.inject($(fotoTitel), 'after');
									el_a.inject(el_img, 'after');
									el_img2.inject(el_a);
								}
								else {
									var el_img = new Element('img', {
										'src': '/layout/images/spacer.gif',
										'width': 1,
										'height': 46,
										'alt': ''
									});
									var el_img2= new Element('img',	{
										'src': '/layout/images/keuzewijzer.png',
										'width': 23,
										'height': 13,
										'alt': '',
										'class': 'keuzewijzer'
									});
									el_img.inject($(fotoTitel), 'after');
									el_img2.inject(el_img, 'after');
								}
								vergrootglaswijzerPopup();
	
								// Item titel + omschrijving updaten
								$('item_titel').set('text', erc_items[myFx.itemIndex].title);
								$('item_kort_info').set('html', erc_items[myFx.itemIndex].content);
								
								// Het juiste item laten oplichten
								$('itemlijst').getElements('a').set('class');
								$(erc_items[myFx.itemIndex].id).set('class', 'selected');
							break;
						}
						myFx.start({'opacity': opacity});
					}).delay(delayInterval);
				}
			});
			
			// Huidige index meegegeven aan myFx object
			myFx.itemIndex = 0;
			
			// Na ingestelde interval uitvoeren
			(function() {
				myFx.start({'opacity': [1.0, 0.0]});
			}).delay(interval);
		}
	}

	// Grote flash player
	if($('flashmovie_big')) {
		var flash = new Swiff('/layout/flash/player/large.swf', {
			id: 'moviePlayer',
			width: 690,
			height: 330,
			vars: {
				flvurl: $('flashmovie_big').get('title')
			}
		});
		$('flashmovie_big').set('title', '');
		flash.inject($('flashmovie_big'));
	}
	
	/*
	if($('itemlijst')) {
		// Zorg er voor dat de juiste menu optie oplicht
		$('itemlijst').getElements('a').each(function(el) {
			// Hij moet hier query string gaan matchen 
			//alert(location.pathname + ":" + decodeURI($(el).get('href')));
			if(location.pathname.match(decodeURI($(el).get('href'))) || (location.pathname == '/' && $(el).get('href') == '/index.html')) {
				$(el).set('class','selected');
			}
		});
	}
	*/
	
	// Positionering van submenu items
	$$('div.submenu_div').each(function(el) {
		// submenu = 7 tekens
		var menunr 	= $(el).get('id').substr(7,1);
		var topmenu	= 'topmenu_btn' + menunr;
		
		// Eerste menu optie overslaan
		if(menunr == 1) {
			return;
		}
	
		if($(topmenu)) {
			var pos  		= $(topmenu).getPosition($('header_title'));
			var margin 		= Math.abs($(topmenu).getStyle('margin-left').toInt());
			$(el).setStyle('left', pos.x + 'px');
		}
	});
	
	if($('lichtkrant')) {
		var ul = $('lichtkrant_scroller').getElement('ul');
		
		if(!ul) {
			$('lichtkrant').destroy();
		}
		else {
			var items = ul.getElements('li');
			var size = 0;
			items.each(function(el) {
				size += el.getSize().x;
				
				el.getElements('a').each(function(el) {
					if(!el.get('href').match('ercmachinery.com')) {
						el.set('target', '_blank');
					}
				});
				
				var clone = el.clone();
				clone.set('class', 'clone');
				clone.inject(ul);
			});
			
			var ticker = function() {		
				ul.get('tween', {
					'onComplete': function() {
						for(i = 0; i < items.length; i++) {
							items[i].inject(ul);
						}
						ul.setStyle('left', 0);
						ticker();
					},
					'property': 'left',
					'duration': (size / 50) * 1000,
					'transition': 'linear'
				}).start(-(size));
			};
			ticker();
	
			$('lichtkrant_toggle').addEvent('click', function(e) {
				var currentMode = $('lichtkrant').getStyle('background-image');
				currentMode = currentMode.match(/lichtkrant-([a-z]+)\.png/)[1];
				
				if(currentMode == 'pause') {
					$('lichtkrant').setStyle('background-image', $('lichtkrant').getStyle('background-image').replace(/-pause/, '-play'));
					ul.get('tween').pause();
				}
				else {
					$('lichtkrant').setStyle('background-image', $('lichtkrant').getStyle('background-image').replace(/-play/, '-pause'));
					ul.get('tween').resume();
				}
			});
		}
	}
	
	if($('orderform') || $('orderform_contact')) {
		$$('ul.articles').each(function(el) {
			el.set('slide', {duration:250,transition: Fx.Transitions.Cubic.easeOut});
			var toggler = el.getParent('li').getElement('div.toggler');
			toggler.setStyle('cursor','pointer');
			toggler.addEvent('click', function(e) {
				var mySlide = el.get('slide');
				mySlide.toggle().chain(function() {
					toggler.set('text', mySlide.open ? '[_]' : '[+]' );
				});
			});
			el.slide('hide');
		});
		
		var update_price = function() {
			var myJSONRemote = new Request.JSON({
				url: '/orderform?calculate',
				onSuccess: function(data) {
					$('price_total').set('text', data.price);
				}
			}).get();
			
		};
		
		$$('input[name^=item_artikel_]').each(function(el) {
			el.addEvent('click', function(e) {
				this.select();
			});
			
			var name = el.get('name');
			var aantal = parseInt( Cookie.read(name) );
			el.set('value', aantal ? aantal : 0);
			el.addEvent('keyup', function(e) {
				var aantal = this.get('value').replace(/[^\d]/, '');
				Cookie.write(name, aantal);
				this.set('value', aantal);
				update_price();
			});
		});
		
		if($('orderform_contact')) {
			var update_details = function(e) {
				Cookie.write('contact-' + this.get('name'), this.get('value'));
			};
			
			var inputs = $('orderform_contact').getElements('input');
			var textareas = $('orderform_contact').getElements('textarea');
			inputs.addEvent('keyup', update_details);
			inputs.addEvent('change', update_details);
			textareas.addEvent('keyup', update_details);
			textareas.addEvent('change', update_details);			
			
			[inputs,textareas].each(function(elements) {
				elements.each(function(el) {
					el.set('value', Cookie.read('contact-' + el.get('name') ));
				});
			});
		}
		
		if($('next_step') || $('prev_step')) {
			var myURInext = new URI(location.href);
			var myURIprev = new URI(location.href);
			var myQS = myURInext.get('query').parseQueryString();
			if(myQS.step && parseInt(myQS.step) > 0) {
				myQS.step = parseInt(myQS.step) + 1;
			}
			else {
				myQS.step = 2;
			}
			
			myURInext.set('query', 'step=' + myQS.step);
			myURIprev.set('query', 'step=' + (myQS.step - 2));
			if($('next_step')) {
				$('next_step').addEvent('click', function(e) {
					e.stop();
					location.href = myURInext.toString();
				});
			}
			if($('prev_step')) {
				$('prev_step').addEvent('click', function(e) {
					e.stop();
					location.href = myURIprev.toString();
				});
			}
			
		}
	}
});

// Functie om de query string uit te lezen
function query_string() {
	var qsParm = new Array();
	var query = window.location.search.substring(1);
	var parms = query.split('&');
	for (var i=0; i<parms.length; i++) {
		var pos = parms[i].indexOf('=');
		if (pos > 0) {
			var key = parms[i].substring(0,pos);
			var val = parms[i].substring(pos+1);
			qsParm[key] = val;
		}
	}
	return qsParm;
}
