var tpl = {
	options:{
		base : '/'
	},
	init: function(options){
		this.options = $merge(this.options, options);
		this.centerWebsite(1000);
		this.mkMenu();
		this.mkMentions();
	},
	/*
		Menu d�pliant
	*/
	mkMenu: function(){
		var subMenus = $$('#menu div.submenu');
		subMenus.each(function(submenu, i){
			var menuFx = new Fx.Tween(submenu);
			var openedSize = submenu.getElement('ul').getSize().y;
			var parent = submenu.getParent();
			if(
				!parent.hasClass('opened')
				|| (parent.get('id') == 'maisons_closed')
			){
				submenu.setStyle('height', 0);
			}
			submenu.getElements('a').each(function(a, i){
				a.addEvent('click', function(e){
					e = new Event(e).stop();
					window.location = this.get('href');
				});
			});
			parent.addEvent('click', function(e){
				e = new Event(e).stop();
				if(submenu.getStyle('height').toInt() == 0){
					menuFx.start('height', 0, openedSize);
				}
				else{
					menuFx.start('height', openedSize, 0);
				}				
			});
		});
	},
	
	mkMentions: function(){
		$('mentions_inner').load(this.options.base+'mentions');
		var mentions = $('mentions');
		mentions.set('opacity', 0);
		mentions.setStyle('display', 'block');
		$('mentions_link').addEvent('click', function(e){
			e = new Event(e).stop();
			mentions.tween('opacity', 0, 1);
		});
		$('mentions_closer').addEvent('click', function(e){
			e = new Event(e).stop();
			mentions.set('opacity', 0);
		});
		mentions.getElements('a').each(function(link){
			link.addEvent('click', function(e){
				e = new Event(e).stop();
				window.location = link.get('href');
			});			
		});
	},
	/*
		Centrer le site
	*/
	centerWebsite: function( delay ){
		var container = $('container');
		var container_height = container.getSize().y;
		var body_height = window.getSize().y;
		var margin_top = ( body_height - container_height ) / 2;
		if(margin_top > 0){
			container.setStyle('margin-top', margin_top);
		}
		else{
			container.setStyle('margin-top', 0);
		}
		if( ! window.ie ){
			(function(){this.centerWebsite( delay * 1.5 );}.bind(this)).delay( delay );
		}		
	},
	/*
		Slides Maisons blanches / pr�sentation du projet
	*/
	presentationSlider: function(){
		var thumbs = $$('#maisons_thumbs a');
		var imgs = $$('#maisons_full img');
		thumbs.each(function(thumb, i){
			thumbs[i].coord = thumb.getCoordinates();
			imgs[i].set('opacity', 0);
			thumb.addEvent('click', function(e){
				e = new Event(e).stop();
				imgs.each(function(img, i){
					img.set('opacity', 0);
					thumbs[i].removeClass('selected');
				});
				imgs[i].tween('opacity', 0, 1);
				thumbs[i].addClass('selected');
			});
		});
		imgs[0].tween('opacity', 0, 1);	
		thumbs[0].addClass('selected');		
	},
	
	/**
	 * Tableaux : apartements et tarifs  
	 **/
	mkTables: function(base){
		var table = $('appartement_table');
		var tbody = table.getElement('tbody');
		var trs = tbody.getElements('tr');
		
		var pageChangerContainer = $('page_changer');
		
		var modulo = trs.length%12;
		var numberOfPages = Math.floor(trs.length/12);
		if(modulo!==0){
			numberOfPages++;
		}
		
		var trGroups = [];
		var current_page = 0;
		
		$('descendre').addEvent('click', function(e){
			e = new Event(e).stop();
			if(current_page+1 < numberOfPages){
				trGroups[current_page+1].show();
			}
		});
		
		$('monter').addEvent('click', function(e){
			e = new Event(e).stop();
			if(current_page > 0){
				trGroups[current_page-1].show();
			}
		});	
		
		var link = new Element('a', {
			'events' : {
				'click': function(e){
					e = new Event(e).stop();
					trGroups[this.i].show();
				}
			},
			'text' : 0,
			'href' : '#'
		});
		var pageLinks = [];
		
		new Element('th', {
			'text' : ' '
		}).inject(table.getElement('tr'));
		var td = new Element('td', {
			'class' : 'dl_column',
			'text' : ' '
		});
		
		for(i=0; i<numberOfPages; i++){
			trGroups.push({
				page: i,
				rows: [],
				show: function(){	
					tbody.set('opacity', 0);	
					trs.each(function(tr){
						tr.addClass('hide');
					});
					table.addClass('ajax-loading');
					(function(){
						table.removeClass('ajax-loading');
						tbody.fade('in');
					}).delay(500);				
					this.rows.each(function(row){
						row.removeClass('hide');
					});
					current_page = this.page;
					pageLinks.each(function(link, i){
						if(i != current_page){
							link.removeClass('current');
						}
						else{
							link.addClass('current');
						}
					});
				}
			});
			
			var max = 12;
			if(	i == numberOfPages - 1 && modulo !== 0 ){
				//max = modulo;
			}
			
			var emptyColumn = new Element('td', {'colspan':9, 'text':'empty'});
			var emptyRow = new Element('tr', {'class' : 'empty'});
			emptyColumn.inject(emptyRow);
			
			for( j=0; j<max; j++){
				var key = i*12 + j;
				if(!$type(trs[key])){
					trs[key] = emptyRow.clone().inject(tbody)
				}
				var tr = trs[key];
				trGroups[i].rows.push(tr);
				tr.addEvent('click', function(e){
					e = new Event(e).stop();
					var tds = this.getElements('td');
					var lot = tds[0].get('text').trim();
					var bat = tds[2].get('text').trim();	
					var type = this.getElement('th').get('text').trim().substr(0, 2);					
					window.location = base + 'files/download_pdf.php?filename='+bat+'-'+type+'-'+lot+'.pdf';
				});
				if(!tr.hasClass('empty'))
					td.clone().inject(tr);			
				
			}
			var cln = link.clone().cloneEvents(link).set('text', i+1);
			cln.i = i;
			cln.inject(pageChangerContainer);
			pageLinks.push(cln);	
		}
			
		trGroups[0].show();	
	
	}
};
