// home.js
// author : dosites.com
// -------------------
window.addEvent('domready', function(){

	$('copyright').setStyle('top',window.getHeight()-15);
	$('selProject').setHTML('');
	// provenance 
	Cookie.set('fromPage', 'home');

	// event But allreal -------------------------------------------------------------
	$('allReal').addEvent('mouseenter', function(e) {
		e = new Event(e).stop();
		this.style.background ='#aac700';
	});
	$('allReal').addEvent('mouseleave', function(e) {
		e = new Event(e).stop();
		this.style.background ='#000000';
	});

	// event But flech_back -------------------------------------------------------------
	$('flech_back').addEvent('click', function(e) {
		e = new Event(e).stop();
		projectLoader.loadPrevProj();
	});
	$('flech_back').addEvent('mouseenter', function(e) {
		e = new Event(e).stop();
		this.src = "imgs/flech_back_on.gif"; 
	});
	$('flech_back').addEvent('mouseleave', function(e) {
		e = new Event(e).stop();
		this.src = "imgs/flech_back_off.gif"; 
	});
	// event But flech_next -------------------------------------------------------------
	$('flech_next').addEvent('click', function(e) {
		e = new Event(e).stop();
		projectLoader.loadNextProj();
		//alert ('flech_next');
	});
	$('flech_next').addEvent('mouseenter', function(e) {
		e = new Event(e).stop();
		this.src = "imgs/flech_next_on.gif"; 
	});
	$('flech_next').addEvent('mouseleave', function(e) {
		e = new Event(e).stop();
		this.src = "imgs/flech_next_off.gif"; 
	});

	// event select Proj -------------------------------------------------------------
	$('selProject').addEvent('click',function(e) {
		e = new Event(e).stop();
		switch(projectLoader.lang){

			case "cn":
				document.location = "projet_cn.php?id=" + projectLoader.getProjId();
				break;
		
			case "en":
				document.location = "projet_en.php?id=" + projectLoader.getProjId();
				break;

			default:
			case "fr":
			document.location = "projet.php?id=" + projectLoader.getProjId();
				break;
		
		}
		});

	initPage();
});

window.addEvent('resize',function(e){
	projectLoader.scaleImage();
	$('copyright').setStyle('top',window.getHeight()-15);
});

// --------------------------------------------------------------------------------------
var projectLoader = {

	sUrl:"script/getjsonhomeproj.php",
	aAllProjData:null,
	nSelProj:0,
	mediaWidth:1200,
	mediaHeight:900,
	bgImgloader:null,
	lang:"fr",

	// --------------------------------------
	initialize:function(data){
		this.aAllProjData = data;
		this.loadProj();
	},

	// --------------------------------------
	loadNextProj:function(){

		var id = this.nSelProj+1;
		if (id == this.aAllProjData.length){	this.nSelProj = 0; }else{ this.nSelProj++;}
		this.loadProj();
	},

	// --------------------------------------
	loadPrevProj:function(){
		var id = this.nSelProj-1;
		if (id < 0){ this.nSelProj = this.aAllProjData.length-1; }else{ this.nSelProj--;}
		this.loadProj();
	},
	
	// --------------------------------------
	loadProj:function(){
		$('loader').setStyle('visibility', 'visible');
		$('bgImage').empty();
		new Ajax(this.sUrl,{postBody:'idProj='+this.aAllProjData[this.nSelProj]+"&lang="+this.lang, onComplete: projectLoader.projLoaded,method: 'get'}).request();//,update: $('selProject')
	},
	
	// --------------------------------------
	projLoaded:function(req){
		var reqAnswer = Json.evaluate(req);
		if (reqAnswer['error']){
			alert (reqAnswer['errorMessage']);
			return;
		}
		
		$('selProject').setHTML( '<strong>' +reqAnswer['titre']+ '</strong><br/><div>' + reqAnswer['chapo'] + '</div>' );
		//$('copyright').setHTML(reqAnswer['copyright']);
		projectLoader.bgImgloader = new Asset.image(reqAnswer['src'], {onload:function(){ projectLoader.imageisLoad();}});
		new Fx.Style('bgImage', 'opacity').set(0);
	},

	// --------------------------------------
	imageisLoad:function(){
		$('loader').setStyle('visibility', 'hidden');
		projectLoader.scaleImage();
	},

	// --------------------------------------
	scaleImage:function(){
		var w = window.getWidth();
		var h = window.getHeight();
		//$('bgImage').setStyle('clip', [0, 0, w, h]);
		var scale = projectLoader.getFitMinScaleRatio(projectLoader.mediaWidth,projectLoader.mediaHeight,window.getWidth(),window.getHeight());		
		projectLoader.bgImgloader.injectInside('bgImage');
		projectLoader.bgImgloader.setProperties({width: projectLoader.mediaWidth * scale,height: projectLoader.mediaHeight * scale});
		new Fx.Style('bgImage', 'opacity').start(0,1); 
	},

	// --------------------------------------
	getProjId:function(){
		return this.aAllProjData[this.nSelProj];
	},	

	// --------------------------------------
	getFitMinScaleRatio:function( w, h, fw, fh){
		var s; // scale
		if( w < fw || h < fh ) {
			s = Math.max( fw / w,  fh / h );
		} else if( w > fw || h > fh ){
			s = 1 / Math.min( w / fw,  h / fh );
		} else {
			s = 1;
		}
		return s;
	}
}