var init = {
	flux:null,
	objetXml:null,
	items:[],
	zoneContenu:null,
	directLoad:false,
	calqueContenu:null,
	arrayImages:null,
	map:{},
	idInterval:null,
	diaporamaInterval:null,
	imageObj:null,
	checkImgInterval:null,
	'directCharge':function(flux){
		this.directLoad = true;
		this.flux = flux;
		this.charge();
	},
	'charge':function(){
		this.calqueContenu = "contentArea";
		this.zoneContenu = document.getElementById(this.calqueContenu);
		if(!this.directLoad){
			this.flux = document.getElementById("keyword").value;
		}
		this.directLoad = false;
		if(this.flux == ""){
			this.zoneContenu.innerHTML = "Need a product";
			this.zoneContenu.style.background = "#FF4CD5";
		}else{
			this.zoneContenu.style.background = "#ffffff";
			xmlRequest.get("getData.php", "key="+this.flux, callbackSearch, "POST");
		}
	},
	'analyse':function(objetX){
		this.arrayImages = [];
		this.objetXml = objetX.responseXML;
		var photos = this.objetXml.getElementsByTagName('photos')[0].getElementsByTagName('photo');
		for(var i=0; i<photos.length; i++){
			var objet = { "id":photos[i].getAttribute("id") , "image":photos[i].getElementsByTagName("grande")[0].firstChild.nodeValue , "imageSmall" : photos[i].getElementsByTagName("petite")[0].firstChild.nodeValue , "titre":photos[i].getElementsByTagName("titre")[0].firstChild.nodeValue};
			this.arrayImages.push(objet);

		}
		this.makeSmallItem(0,10);
		this.createDiaporama(0);
	},
	'createDiaporama':function(idElement){
		if(init.diaporamaInterval != null){
			clearInterval(init.diaporamaInterval)
			this.diaporamaInterval = null;
		}
		init.currentElement = idElement;
		init.displayDiaporama();
		//

	},
	'displayDiaporama':function(){
		if(init.diaporamaInterval != null){
			clearInterval(init.diaporamaInterval)
		}
		new YAHOO.util.Anim(init.zoneContenu, {
			opacity: { from:0 , to: 1}
		}, 1, YAHOO.util.Easing.backIn).animate();
		if(init.arrayImages[init.currentElement] == undefined)
		init.currentElement = 0;

		if(init.checkImgInterval != null){
			clearInterval(init.checkImgInterval);
			init.checkImgInterval = null;
		}
		init.zoneContenu.innerHTML = "<image src=\""+init.arrayImages[init.currentElement].image+"\" />";
		init.currentElement = init.currentElement + 1;
		init.diaporamaInterval = setInterval(init.nextDiaporama, 10000);

	},
	'nextDiaporama':function(){
		clearInterval(init.diaporamaInterval);
		new YAHOO.util.Anim(init.zoneContenu, {
			opacity: { from:1 , to: 0}
		}, 1, YAHOO.util.Easing.backIn).animate();

		init.diaporamaInterval = setInterval(init.displayDiaporama, 1000);
	},
	'makeSmallItem':function(start, stopNumber){
		if(init.idInterval != null){
			clearInterval(init.idInterval)
			init.idInterval = null;
		}
		zoneContent = document.getElementById("slideImage");

		prevStart = parseInt(start)-10;
		prevStop = 	parseInt(prevStart)+10;

		nextStart = parseInt(start)+10;
		nextStop = 	parseInt(nextStart)+10;
		if(start == 0){
			prevStart = parseInt(init.arrayImages.length) - 10
			prevStop = 	parseInt(init.arrayImages.length)
		}
		if(stopNumber == init.arrayImages.length){
			nextStart = 0
			nextStop = 	10
		}
		zoneContent.innerHTML = "<img src=\"left.png\" onclick=\"init.swapSmallItem("+prevStart+", "+prevStop+")\" />";
		for(var i=start; i<stopNumber; i++){
			zoneContent.innerHTML = zoneContent.innerHTML + "<img src=\""+init.arrayImages[i].imageSmall+"\" onclick=\"init.createDiaporama("+i+")\" />"
		}
		zoneContent.innerHTML = zoneContent.innerHTML + "<img src=\"right.png\" onclick=\"init.swapSmallItem("+nextStart+", "+nextStop+")\"  />";
		
	},
	'swapSmallItem':function(start, stopNumber){
		anim.swapContentShowGallery();
		if(this.idInterval != null){
			clearInterval(this.idInterval);
		}
		this.idInterval = setInterval("init.makeSmallItem("+start+", "+stopNumber+")", 1000);
	},
	'getContent':function(idE){
		contentGlobal = this.items[idE].getElementsByTagName("description")[0].firstChild.nodeValue + "<br /><a href=\""+this.items[idE].getElementsByTagName("link")[0].firstChild.nodeValue+"\" target=\"_blank\">Click Here</a>";
		this.createDivContent({id:"content"+idE, parent:idE, content:contentGlobal});
	},
	'removeContent':function(){
		var el = this.getEl();
		el.parentNode.removeChild(el);
	},
	'createDivContent':function(elements){
		if(document.getElementById(elements["id"]) != undefined){
			var myAnim = new YAHOO.util.Anim(elements["id"], {
				height: { from:100 , to: 0 },
				opacity: { from:1 , to: 0}
			}, 1, YAHOO.util.Easing.backIn);
			myAnim.onComplete.subscribe(init.removeContent);
			myAnim.animate();

		}
		else{
			if(window.ActiveXObject){
				var div= document.createElement('<div id="'+elements["id"]+'">');
			}
			else{
				var div = document.createElement('div');
				div.id = elements["id"];
			}
			if(elements["parent"] != undefined){
				document.getElementById(elements["parent"]).appendChild(div);
			}else{
				document.body.appendChild(div);
			}
			if(elements["content"] != undefined){
				div.innerHTML = elements["content"]
			}

			new YAHOO.util.Anim(elements["id"], {
				opacity: { from:0, to: 1}
			}, 1, YAHOO.util.Easing.bounceOut).animate();
		}
	}
}
//Animations
var anim = {
	showGalleryDisplay:false,
	enableShowGalleryDisplay:false,
	showGallery:function(){
		zoneSlide = "zoneSlideShow";
		if(this.showGalleryDisplay){
			displace = -85;
			this.showGalleryDisplay = false;

			var myAnim = new YAHOO.util.Anim("slideImage", {
				opacity: { from:1 , to: 0}
			}, 1, YAHOO.util.Easing.backIn);
			myAnim .animate()

		}else{
			displace = 85;
			this.showGalleryDisplay = true;

			var myAnim = new YAHOO.util.Anim("slideImage", {
				opacity: { from:0 , to: 1}
			}, 1, YAHOO.util.Easing.backIn);
			myAnim .animate()

		}

		new YAHOO.util.Motion(zoneSlide, { points:
		{ by: [0,displace] }
		}, 1, YAHOO.util.Easing.bounceOut).animate();
	},
	enableShowGallery:function(){
		if(!this.enableShowGalleryDisplay){

			new YAHOO.util.Anim("zoneSlideShow", {
				opacity: { from:0, to: 1}
			}, 1, YAHOO.util.Easing.easeBothStrong).animate();
			document.getElementById("zoneSlideShow").style.display = "block";
		}
	},
	swapContentShowGallery:function(){
		var myAnim = new YAHOO.util.Anim("slideImage", {
			opacity: { from:1 , to: 0}
		}, 1, YAHOO.util.Easing.backIn);

		var reAppear = function(){
			new YAHOO.util.Anim("slideImage", {
				opacity: { from:0 , to: 1}
			}, 1, YAHOO.util.Easing.backIn).animate();
		}

		myAnim.onComplete.subscribe(reAppear);
		myAnim.animate();


	}

}

//Chargement des flux XML distants
var xmlRequest = {
	handleSuccess:function(o){
		document.getElementById("loading").style.display = "none";
		init.zoneContenu.style.display = "block";
		anim.enableShowGallery();
		init.analyse(o);
	},
	handleFailure:function(o){
		document.getElementById("loading").style.display = "none";
		alert( o.status + " " + o.statusText)
	},
	get:function(url, flux, callback, type) {
		document.getElementById("loading").style.display = "block";
		init.zoneContenu.style.display = "none";
		if(type == "POST"){
			YAHOO.util.Connect.asyncRequest('POST', url , callback, flux);
		}else{
			YAHOO.util.Connect.asyncRequest('GET', url , callback, flux);
		}


	}
};
//Callback
var callbackSearch ={
	success: xmlRequest.handleSuccess,
	failure: xmlRequest.handleFailure,
	scope:xmlRequest,
	argument: "ok"
};