// JavaScript Document

var slides;
var vrstgegevens;

// INIT
window.addEvent('domready', function () {
    vrstgegevens = new VrstGeg();
	slides = new Slides();
	vrstgegevens.vulGeg();
	document.addEvent('keydown', function(event){
		if (event.key == 'up' || event.key == 'left') {
			event.stop();
			slides.slideLeft();
			}
		if (event.key == 'down' || event.key == 'right') {
			event.stop();
			slides.slideRight();
			}
	});
	
});

/*
window.addEvent('gegklaar', function(event){
	vrstgegevens.maakLijst();									 
	slides.slideFirst();
});
*/

var VrstGeg = new Class({
	arrGeg: [],
	act: 0,
	actmaand: null, 
	aantalvoorstellingen: 0,
	eerstvolgende: 0,
	lijst: [], 
	
	vulGeg: function() {
		var request = new Request.JSON({
			url: '/include/getvrstjson.php',
			onComplete: function(jsonObj) {
				this.arrGeg = jsonObj.voorstellingen;
				this.aantalvoorstellingen = this.arrGeg.length;
				//if (Browser.Engine.gecko) console.log(this.aantalvoorstellingen);
				this.arrGeg.each(function(array, index){
					if(this.eerstvolgende == 0) {
						if (array.tijdverschil >= 0) {
							this.eerstvolgende = index;
							this.actmaand = this.arrGeg[index].maand;//////////
							}
						}
					}.bind(this))
				window.fireEvent('gegklaar');
				}.bind(this)
		}).send();		
	},
	
	getNr: function(nr) {
		return this.arrGeg[nr];
	},
	
	getNrVrst: function(vrstnr) {
		var ret = 0;
		this.arrGeg.each(function(item, index){ if(item.vrstnr == vrstnr) {ret=index}; return ret;});
		return ret;
	},
	
	getVorigeSlide: function() {
		$('i'+this.act).setStyle('backgroundImage', 'none');
		if (this.act > 0) this.act--;
		this.preloadNextImage(-1);
		return this.getVoorstellingSlide(this.act);	
	},

	getVolgendeSlide: function() {
		$('i'+this.act).setStyle('backgroundImage', 'none');
		if (this.act < this.aantalvoorstellingen-1) this.act++;
		this.preloadNextImage(1);
		return this.getVoorstellingSlide(this.act);		
	},
	
	getEersteSlide: function() {
		this.act = this.eerstvolgende;
		this.toonLijst(this.act.maand, true);
		this.preloadNextImage(1);
		return this.getVoorstellingSlide(this.eerstvolgende);	
	},
	
	getVoorstellingSlide: function(nr) {
		$('i'+this.act).setStyle('backgroundImage', 'none');
		this.act = nr;
		$('i'+nr).setStyle('backgroundImage', 'url(/images/act-vrst-bg.png)');
		if (this.arrGeg[nr].maand != this.actmaand) this.toonLijst(this.arrGeg[nr].maand, this.arrGeg[nr].inseizoen); ////
		var detail = this.arrGeg[nr];
		var datumtijd;
		if (detail.datum ) datumtijd = detail.datum+" - "+detail.tijd+" u.";
		else datumtijd = '';
		
		var voorstelling = $('sjabloon').clone();
		voorstelling.getElement('.foto').set({'html': '<a><img src= \"/foto/bigimg/'+detail.vrstnr+'.jpg\" </a>'});
		voorstelling.getElement('.titel').set({'html': detail.titel});
		voorstelling.getElement('.subtitel').set({'html': detail.subtitel});
		voorstelling.getElement('.genrespec').set({'html': detail.genrespec+"&nbsp;<span class='leeftijd'>"+detail.leeftijd+"</span>"});
		voorstelling.getElement('.leeftijd').set({'html': detail.leeftijd});
		voorstelling.getElement('.theater').set({'html': detail.theater});
		voorstelling.getElement('.datumtijd').set({'html': datumtijd});
		if (detail.koffie == 'j') voorstelling.getElement('.koffie').set({'html': "<img src='/images/koffie.png' title='Portemonneeloze pauze' alt='Portemonneeloze pauze' />"});
		if (detail.prijs_diner) voorstelling.getElement('.diner').set({'html': "<img src='/images/diner.png' title='Theaterdiner' alt='Theaterdiner' />"});
		if (detail.stijl == 'W') voorstelling.getElement('.gegevensblok').setStyles({'background-color': '#FC0', 'color': '#000'});
		
		voorstelling.getElement('.omschr').set({'html': detail.omschr});
		
		bestel = "";

		if (detail.tijdverschil >= 0) {
			var prijs = 'prijs: &euro; ' + detail.prijs_normaal;
			if (detail.prijs_kind) prijs += ' kinderen t/m 12 jr: &euro; ' + detail.prijs_kind;
			if ((detail.tijdverschil == 0) && (detail.status == 'beschikbaar')) detail.status = 'bellen';
			switch (detail.status) {
				case ('beschikbaar'): { 
					voorstelling.getElement('.prijs').set({'html': prijs});
					if (detail.periode == 'vrij') {
						bestel = "<a href='#' onclick='javascript: bestelform(\""+detail.titel+"\","+detail.org+","+detail.vrstnr+","+detail.vrstnr+"); return false;' onfocus='blur()'><img src='/images/bestelkaarten.png' class='button'></a>"; 
						}
					if (detail.periode == 'abo') {
						if (detail.abo == 'abo') bestel='abonnementsvoorstelling<br />losse verkoop va 13 juli<a href=\"javascript:wachtlijst('+detail.vrstnr+')\">.</a>';
						if (detail.abo == 'extra') bestel='extra bestelling<br />losse verkoop va 13 juli';
						if (detail.abo == 'niet') bestel='alleen losse kaartverkoop';
						if (detail.abo == 'extramax4') bestel='extra bestelling, maximaal 4 kaarten';
						}
					if ((detail.periode == 'dicht') && (detail.abo != 'niet')) {
						bestel = 'losse verkoop va 13 juli';
						}
					break; 
					}
				case ('uitverkocht'): { 
					bestel = "<b>UITVERKOCHT</b><div><a href='javascript:wachtlijst("+detail.vrstnr+")'>Zet mij op de wachtlijst</a></div>"; 
					break; 
					}
				case ('vervallen'): { 
					bestel = "<b>GEANNULEERD</b>"; 
					voorstelling.getElement('.omschr').setStyle('color', '#888');
					break; 
					}
				case ('bellen'): { 
					bestel = "Bel onze kassa voor kaarten: "+detail.telnr; 
					voorstelling.getElement('.prijs').set({'html': prijs});
					break;
					}
				}
			}
		if (voorstelling.getElement('.bestel')) voorstelling.getElement('.bestel').set({'html': bestel});
		
		if ((detail.diner_vrstnr > 0) && (detail.tijdverschil >= 0)) {
			if ((detail.tijdverschil == 0) || (detail.tijdverschil == 0)) detail.status_diner = 'bellen';
			var prijsdiner = 'prijs diner: &euro; '+detail.prijs_diner;
			var besteldiner;
			switch (detail.status_diner) {
				case ('beschikbaar'): { 
					voorstelling.getElement('.prijsdiner').set('html', prijsdiner);
					if (detail.periode == 'vrij') {
						besteldiner = "<a href='#' onclick='javascript: bestelform(\"Theaterdiner "+detail.titel+"\","+detail.diner_org+","+detail.diner_vrstnr+","+detail.vrstnr+"); return false;' onfocus='blur()'><img src='/images/besteldiner.png' class='button'></a>"; 
						}
					break; 
					}
				case ('uitverkocht'): {besteldiner = "<b>UITVERKOCHT</b>"; break; }
				case ('vervallen'): { 
					besteldiner = "<b>GEANNULEERD</b>"; 
					break; 
					}
				case ('bellen'): { 
					besteldiner = "Bel onze kassa voor kaarten: "+detail.telnr; 
					voorstelling.getElement('.prijsdiner').set('html', prijsdiner);
					break;
					}
				}
				voorstelling.getElement('.besteldiner').set({'html': besteldiner});
			}
			
		if (detail.diner_vrstnr==0) voorstelling.getElement('.dinerblok').setStyle('display', 'none');
		
		if (detail.cursief) voorstelling.getElement('.cursief').set({'html': detail.cursief});
		
		if (detail.filmpje_src) {
			//var filmpje = "<a href='#' onclick=\"javascript:speelVideo('"+detail.filmpje_src+"','"+detail.filmpje_bron+"')\"; onfocus='blur()' >filmpje</a>"; 
			var filmpje = "<a href='#' onclick=\"javascript:speelVideo('"+detail.filmpje_src+"','"+detail.filmpje_bron+"')\"; onfocus='blur()' ><img src='/images/filmpje_button.png' alt='filmpje'/></a>"; 
			voorstelling.getElement('.beeldenblok').set({'html': filmpje});
			}
		else voorstelling.getElement('.beeldenblok').setStyle('display', 'none');
		
		var links;
		if (detail.site1) links = "<a href='http://"+detail.site1+"' target='_blank'>"+detail.site1+"</a><br />";
		if (detail.site2) links += "<a href='http://"+detail.site2+"' target='_blank'>"+detail.site2+"</a><br />";
		if (detail.site3) links += "<a href='http://"+detail.site3+"' target='_blank'>"+detail.site3+"</a><br />";
		voorstelling.getElement('.links').set({'html': links});
		
		var thumbSrc = 'http://www.schouwburgcuijk.nl/foto/thumb/'+detail.vrstnr+'.jpg';
		var url = 'http://www.schouwburgcuijk.nl/voorstellingen.html?vrst='+detail.vrstnr;

		$('ididid_event_name').set('value', detail.titel);
		$('ididid_event_date').set('value', detail.id3_date);
		$('ididid_event_end_date').set('value', detail.id3_date);
		$('ididid_event_location').set('value', detail.theater);
		$('ididid_event_id').set('value', detail.vrstnr);
		$('ididid_event_image').set('value', thumbSrc);
		$('ididid_event_url').set('value', url);
		$('ididid_event_ticketurl').set('value', url);


		return voorstelling;
	},

	preloadNextImage: function(rel) {
		if (this.act < this.aantalvoorstellingen-1 && this.act > 0) {
			var next = this.arrGeg[this.act+rel].vrstnr;
			var preload = function() {
				new Asset.image('/foto/bigimg/'+next+'.jpg');
				}.delay(500);
			}
	},
	
	getAantalvrst: function() {
		return this.aantalvoorstellingen;
	},
	
	maakLijst: function() {
		this.arrGeg.each (function(value, index, array) {
			var itemdiv = new Element('div', {'class': 'vrstitem', 'id': 'i'+index}).set({'html':  '<div class=\"dagnr'+' '+value.stijl+'\">'+value.itemdatum+'</div><div class=\"titel\">'+value.titel+'</div>' }).injectInside($('lijst'));
			if (value.tijdverschil < 0) itemdiv.setStyle('color', '#888');
			itemdiv.addEvent('click', function() {this.morph({'background-color': '#DDD'}), slides.slideVrst(value.vrstnr)});
			itemdiv.addEvent('mouseenter', function() {this.morph({'background-color': '#EEE'})});
			itemdiv.addEvent('mouseleave', function() {this.morph({'background-color': '#FFF'})});
			});
	},
	
	toonLijst: function(maand, inseizoen) {
		//if (Browser.Engine.gecko) console.log(maand+' '+inseizoen);
		
		if ($('m'+this.actmaand)) $('m'+this.actmaand).setStyle('backgroundImage', 'none');
		this.actmaand = maand; 
		if ($('m'+this.actmaand)) $('m'+this.actmaand).setStyle('backgroundImage', 'url(/images/act-vrst-bg.png)');
		
		var el = $('lijst').getFirst('.vrstitem');
		if (inseizoen >0) {
			this.arrGeg.each (function(value, index, array) {
				if (value.maand == maand && value.inseizoen == 1) {
					el.setStyle('display', 'block');
					}
				else el.setStyle('display', 'none');
				el = el.getNext('.vrstitem');
				});
			}
		else {
			this.arrGeg.each (function(value, index, array) {
				if (value.inseizoen == 0) {
					el.setStyle('display', 'block');
					}
				else el.setStyle('display', 'none');
				el = el.getNext('.vrstitem');
				});
			}
	},
	
	getOverzicht: function() {
		
	}
	
});


					  
					  

var Slides = new Class({

	morphslide1: null,
	morphslide2: null,
	slide1voor: true,
	finished: true,
		
	initialize: function() {
		this.morphslide1 = new Fx.Morph($('slide1'), {link: 'cancel', duration: '300', onComplete: function(){window.fireEvent('slideklaar');}.bind(this)});
		this.morphslide2 = new Fx.Morph($('slide2'), {link: 'cancel', duration: '300', onComplete: function(){window.fireEvent('slideklaar');}.bind(this)});
		this.finished = true;
		
		window.addEvent('slideklaar', function(event){
			this.finished = true;
			}.bind(this));
		},
	
	slideRight: function() {
		if (this.finished) {
			this.finished = false;
			if (this.slide1voor) {
				$('slide2').empty();
				vrstgegevens.getVolgendeSlide().injectInside($('slide2'));
				this.morphslide2.set('.slide_rechts');
				this.morphslide1.set('.slide_achter');
				this.morphslide2.start('.slide_mid');
				}
			else {
				$('slide1').empty();
				vrstgegevens.getVolgendeSlide().injectInside($('slide1'));
				this.morphslide1.set('.slide_rechts');
				this.morphslide2.set('.slide_achter');
				this.morphslide1.start('.slide_mid');
			}
			this.slide1voor = !this.slide1voor;
		}
	},
	
	slideLeft: function() {
		if (this.finished) {
			this.finished = false;
			if (this.slide1voor) {
				$('slide2').empty();
				vrstgegevens.getVorigeSlide().injectInside($('slide2'));
				this.morphslide2.set('.slide_links');
				this.morphslide1.set('.slide_achter');
				this.morphslide2.start('.slide_mid');
				}
			else {
				$('slide1').empty();
				vrstgegevens.getVorigeSlide().injectInside($('slide1'));
				this.morphslide1.set('.slide_links');
				this.morphslide2.set('.slide_achter');
				this.morphslide1.start('.slide_mid');
			}
			this.slide1voor = !this.slide1voor;
		}
	},
	
	slideFirst: function() {
		vrstgegevens.getEersteSlide().injectInside($('slide1'));
			this.morphslide2.set('.slide_achter');
			this.morphslide1.set('.slide_mid');
	},
	
	slideVrst: function(vrstnr) { 
		var nr = vrstgegevens.getNrVrst(vrstnr);
		this.act = nr;
		if (nr < 0) return 0;
	
		if (this.finished) {
			this.finished = false;
	
			if (this.slide1voor) {
				$('slide2').empty();
				vrstgegevens.getVoorstellingSlide(nr).injectInside($('slide2'));
				this.morphslide2.set('.slide_links');
				this.morphslide1.set('.slide_achter');
				this.morphslide2.start('.slide_mid');
				}
			else {
				$('slide1').empty();
				vrstgegevens.getVoorstellingSlide(nr).injectInside($('slide1'));
				this.morphslide1.set('.slide_links');
				this.morphslide2.set('.slide_achter');
				this.morphslide1.start('.slide_mid');
			}
			this.slide1voor = !this.slide1voor;
		}
		return nr;
	}

});



function toonLijst(maand, inseizoen) {
	vrstgegevens.toonLijst(maand, inseizoen);
}

