var base = "http://www.santejr.nl/";

Event.observe(window, 'load', function() {	
	slideShow(2);
	observeItems();
	if($('bestelOverzicht') != null) $('bestelOverzicht').observe('click',bestellijst);
});

function sendForm(){
	
	form_values = $('contactForm').serialize(true);

	var naam 	= form_values['naam'];
	var email 	= form_values['email'];
	var tel 	= form_values['tel'];
	var missed 	= false;
	
	if(naam == ''){
		$('naam').addClassName('missed');
		missed = true;
	}else{
		$('naam').removeClassName('missed');
	}
	
	if(email == ''){
		$('email').addClassName('missed');
		missed = true;
	}else{
		$('email').removeClassName('missed');
	}
	
	if(tel == ''){
		$('tel').addClassName('missed');
		missed = true;
	}else{
		$('tel').removeClassName('missed');
	}
	
	if(missed == true) {
		$('msg').update("! U heeft een aantal verplichte velden niet ingevuld")
		return false;
	}
	new Ajax.Request(base+'pages/makecontact.php',{
		parameters: form_values,
		onComplete: function (){
			$('contactForm').update("<p>Bedankt voor het invullen van het formulier. Wij nemen zo spoedig mogelijk contact met u op!<br /><br />Met vriendelijke groet,<br /> Sant&eacute; Jr. Catering &amp; Verhuurbedrijf</p>");	
		}
	});
	
}

function slideShow(imgId){
	
	if(imgId == 6) imgId = 1;
	// determine the div to update
	if($('two').style.display == "none") var updateDiv = $('two');
	else var updateDiv = $('one');
	
	//alert(updateDiv.id);
	// load next image name
	new Ajax.Request(base+'pages/slideshow.php',{
		parameters: 'imgId='+imgId,	
		onComplete: function (resp){
			var imgName = resp.responseText;
			var img 	= imgName;
			preloadImages(img);
			// update hidden Div with new img
			updateDiv.update('<img src='+img+' />');
		}
	});

	

	// swap div after 8000 ms
	setTimeout(function swapFade(){
		if(updateDiv == $('two')){
			updateDiv = $('one');
			new Effect.Appear($("two"), {duration: 2.0 });
		}else{
			updateDiv = $('two');
			new Effect.Appear($("one"), {duration: 0.0 });
			new Effect.Fade($("two"), {duration: 2.0 });
		}
	},4000);		

	
	imgId++;
	// reload the function
	setTimeout("slideShow("+imgId+")",4000);

}

function preloadImages() {
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}


function observeItems(){
	$$('div .aantal').invoke('observe','blur',function(event){
		var subPrijs= 0;
		var element = Event.element(event);
		var aantal 	= $F(element);
		var pars	= element.up().id.gsub('p_','').split("_");
		var eid		= pars[1];
		var mid		= pars[0];
		var naam 	= element.up().next().innerHTML;
		var missed 	= false;
		var btw		= $F(element.next(2));
		
		if(aantal == "") return;
		if(isNaN(aantal)){
			element.value = "";
			element.addClassName('missed');
			alert("U heeft geen geldig aantal ingevoerd");

			return;
			
		};
		if(aantal == 0){
			element.value = '';
			element.up().next(3).update("");
			missed = true;
		}
		var prijs 	= $F(element.next());
		var totaal	= prijs*aantal;
		var euros	= totaal.toFixed(2).replace('.',',');
		
		//update hidden aantalprijs
		element.next(1).value= totaal;
		// update view
		if (aantal == 0) element.up().next(3).update("");
		else element.up().next(3).update(euros);
		
		// update subtotaal
		var subtotaal = $('subtotaal');
		
		$$('div .aantalprijs').each(function(e){		
			if(e.value == "") return true;
			var p	 = parseFloat(e.value);	
			subPrijs = subPrijs + p;	
		});
		subPrijs = subPrijs.toFixed(2).replace('.',',');
		
		$('subtotaal').down().next().update(subPrijs);
		$('subtotaal').show();
		if(subPrijs == 0) $('subtotaal').hide(); 

		//update the session
		if(missed == false)	toSession(mid,eid,naam,aantal,prijs,totaal,btw);
		else removeSession(eid);
	});
	var timer = null;
	$$('div .bg').invoke('observe','mouseover',function(event){
		var element = Event.element(event);
		var tekst 	= element.next(2).innerHTML;
		var titel	= element.previous().innerHTML;
		var ids		= element.id.split("-");
		var mid 	= ids[0];
		var eid 	= ids[1];
		
		clearInterval(timer);
		timer = setTimeout(function(){
			
			new Ajax.Request(base+'pages/get_image.php',{
				parameters: "mid="+mid+"&eid="+eid,
				onComplete: function(transport){
					var img = transport.responseText;
				
					if(img == "none") var imgTag = "";
					else var imgTag = "<img src='"+img+"' alt='' />";
				
					if($('extraInfo') == null){
				   		var div =  new Element('div',{ id: 'extraInfo' });
						$('data').insert({bottom: div});
					}
					var wrapper = $('extraInfo');
					wrapper.hide();

					var clickPos = element.positionedOffset();
					wrapper.setStyle({
						top: (clickPos[1]+15) + 'px',
						left: (clickPos[0]-260) + 'px'
					});
					var inner 	= "<div class='inner'><h3>"+ titel +"</h3>"+tekst+imgTag+"</div>";
					wrapper.update(inner);
				
					// height of the extra info
					var ph	 	= $('maincontainer').getHeight()
					var h1		= wrapper.getHeight();
					var pos 	= element.cumulativeOffset();
					var h2 		= pos[1];
					var total 	= h1 + h2 + 100;
					//alert(total+" > "+ ph);
					if(total > ph){
						wrapper.setStyle({
							top: (clickPos[1]-(h1+5)) + 'px',
							left: (clickPos[0]-260) + 'px'
						}).addClassName("reverse");
					}else{
						wrapper.removeClassName("reverse");
					}
				
					setTimeout(function(){
						wrapper.show();
					},200)


					element.observe('mouseout',function(event){
						if($('extraInfo') != null) $('extraInfo').hide();
					});
				}
			});
			
		},500);
		

		
	});
}

function toSession(mid,eid,naam,aantal,prijs,totaal,btw){
	new Ajax.Request(base+'pages/to_session.php',{
		parameters: 'mid='+ mid +'&eid='+ eid +'&naam='+ naam +'&aantal='+ aantal +'&prijs='+ prijs+'&totaal='+ totaal+'&btw='+ btw,
		onComplete: function(tranport){
			var prodCount = tranport.responseText;
			if(prodCount == 1) var lbl = 'Bestellijst (<em>'+prodCount+' product</em>)';
			else var lbl = 'Bestellijst (<em>'+prodCount+' producten</em>)';
			$('bestelOverzicht').update(lbl);
		}
	});
}

function removeSession(eid){
	new Ajax.Request(base+'pages/remove_session.php',{
		parameters: 'eid='+ eid,
		onComplete: function(tranport){
			var prodCount = tranport.responseText;
			if(prodCount == 1) var lbl = 'Bestellijst (<em>'+ prodCount +' product</em>)'; 
			else var lbl = 'Bestellijst (<em>'+ prodCount +' producten</em>)'; 
			$('bestelOverzicht').update(lbl);
			
		}
	});
}

function bestellijst(event){
	Event.stop(event);
	$('bestelOverzicht').stopObserving('click',bestellijst);
	var element = Event.element(event);
	var h 		= $('data').getHeight();
	
	if($('lijst').hasClassName('opened')){
		new Effect.SlideUp('lijst', {duration:0.5,
			afterFinish: function(){
				$('close').stopObserving('click',bestellijst);
				$('lijst').removeClassName('opened');
				$('bestelOverzicht').observe('click',bestellijst);
			}
		});
	}else{
		new Ajax.Updater('lijst',base+'pages/bestellijst.php',{
			onComplete: function(tranport){
				new Effect.SlideDown('lijst', {
					duration:0.5,
					afterFinish: function(){
						var lh = $('lijst').getHeight();
						var dh = $('data').getHeight();
						
						if(lh > dh){
							$('contentwrapper').setStyle({
								height: (lh+100)+'px'
							});
						}
					}
				});
				$('lijst').addClassName('opened');
				$('close').observe('click',bestellijst);
				$('bestelOverzicht').observe('click',bestellijst);
			}
		});
	}
}

function deleteProduct(eid,cat){
	mesg=confirm("Wilt u zeker dat u dit product uit uw bestellijst wilt verwijderen?");
	if (mesg==true){ 
		removeSession(eid);
		//reload overzicht;
		var row = 'item_'+eid;
		new Effect.DropOut(row,{
			afterFinish: function(){
				new Ajax.Updater('lijst',base+'pages/bestellijst.php',{
					onComplete: function(){
						if($('lijst') != null){
							$('lijst').addClassName('opened');
							$('close').observe('click',bestellijst);
							$('bestelOverzicht').observe('click',bestellijst);
							updateProductOverview(eid);	
						}else location.reload();
					}
				});

			}
		})
	}
}

function updateProductOverview(eid){
	var subPrijs	= 0;
	var row 		= 'list_'+eid;
	var aantal 		= $(row).down(1);
	var prijs  		= $(row).down(1).next();
	var ap 			= $(row).down(1).next(1);
	var totaal		= $(row).down().next(3);

	aantal.value 	= "";
	prijs.value		= "";
	ap.value		= "";
	totaal.update("");
	
	// update overzicht
	$$('div .aantalprijs').each(function(e){		
		if(e.value == "") return true;
		var p	 = parseFloat(e.value);	
		subPrijs = subPrijs + p;	
	});
	subPrijs = subPrijs.toFixed(2).replace('.',',');	
	$('subtotaal').down().next().update(subPrijs);
	$('subtotaal').show();
	if(subPrijs == 0) $('subtotaal').hide();
	
}

function sendBestelling(){
	
	form_values = $('contactForm').serialize(true);

	var naam 	= form_values['naam'];
	var adres 	= form_values['adres'];
	var pc 		= form_values['pc'];
	var wp 		= form_values['wp'];
	var email 	= form_values['email'];
	var tel 	= form_values['tel'];
	var datum 	= form_values['datum'];
	var ok		= form_values['akkoord'];
	var missed 	= false;
	
	if(naam == ''){
		$('naam').addClassName('missed');
		missed = true;
	}else{
		$('naam').removeClassName('missed');
	}
	
	if(email == ''){
		$('email').addClassName('missed');
		missed = true;
	}else{
		$('email').removeClassName('missed');
	}
	
	if(tel == ''){
		$('tel').addClassName('missed');
		missed = true;
	}else{
		$('tel').removeClassName('missed');
	}
	
	if(adres == ''){
		$('adres').addClassName('missed');
		missed = true;
	}else{
		$('adres').removeClassName('missed');
	}
	
	if(pc == ''){
		$('pc').addClassName('missed');
		missed = true;
	}else{
		$('pc').removeClassName('missed');
	}
	
	if(wp == ''){
		$('wp').addClassName('missed');
		missed = true;
	}else{
		$('wp').removeClassName('missed');
	}
	
	if(datum == ''){
		$('datum').addClassName('missed');
		missed = true;
	}else{
		$('datum').removeClassName('missed');
	}
	
	if(missed == true) {
		$('msg').update("! U heeft een aantal verplichte velden niet ingevuld<br />");
		if(ok == undefined){
			var old = $('msg').innerHTML;
			var nwe = old+"! U bent nog niet akkoort gegaan met de algemene voorwaarden";
			$('msg').update(nwe);
			return false;
		}
		return false;
	}else $('msg').update("");
	
	if(ok == undefined){
		var old = $('msg').innerHTML;
		var nwe = old+"! U bent nog niet akkoort gegaan met de algemene voorwaarden";
		$('msg').update(nwe);
		return false;
		
	}
	
	$('data').hide();
	new Ajax.Updater('data',base+'pages/verstuur_bestelling.php',{
		parameters: form_values,
		onComplete: function () {
			$('data').scrollTo();
			new Effect.Appear( $('data'),{delay:0.5,duration:0.5});
			
		}
	});
	
}