var init = {
	flux:null,
	objetXml:null,
	items:[],
	zoneContenu:null,
	directLoad:false,
	calqueContenu:null,
	map:{},
	'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("product").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");
		}
	},
	'chargePage':function(page){
		infos.displayPage = false;
		xmlRequest.get("getData.php", "key="+this.flux+"&page="+page, callbackSearch, "POST");
	},
	'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"], {
				height: { from:0 ,to: 100 },
				opacity: { from:0, to: 1}
			}, 1, YAHOO.util.Easing.bounceOut).animate();
		}
	}
}

//Gestion des bulles d'infos

var infos = {
	contentDisplay:false,
	elementSave:null,
	displayPage:false,
	display:function(idElement){
		if(this.contentDisplay == false){
			document.getElementById(idElement).style.display = "block";
			new YAHOO.util.Motion(init.calqueContenu, { points:
			{ by: [250] }
			}, 1, YAHOO.util.Easing.bounceOut).animate();


			new YAHOO.util.Motion(idElement, { points:
			{ by: [-250] }
			}, 1, YAHOO.util.Easing.bounceOut).animate();
			new YAHOO.util.Anim(idElement, {
				opacity: { from:0, to: 1}
			}, 1, YAHOO.util.Easing.bounceOut).animate();

			this.contentDisplay=true;
			this.elementSave = idElement;
		}else{
			if(this.elementSave != idElement)
			this.miseAjour(this.elementSave,idElement );
		}
	},
	close:function(idElement){
		document.getElementById(idElement).style.display = "none";
		new YAHOO.util.Motion(init.calqueContenu, { points:
		{ by: [-250] }
		}, 1, YAHOO.util.Easing.bounceOut).animate();

		new YAHOO.util.Motion(idElement, { points:
		{ by: [250] }
		}, 1, YAHOO.util.Easing.bounceOut).animate();
		new YAHOO.util.Anim(idElement, {
			opacity: { from:1, to: 0}
		}, 1, YAHOO.util.Easing.bounceOut).animate();
		this.contentDisplay=false;
	},
	miseAjour:function(save, idElement){
		document.getElementById(idElement).style.display = "block";
		new YAHOO.util.Motion(save, { points:
		{ by: [250] }
		}, 1, YAHOO.util.Easing.bounceOut).animate();
		var myAnim = new YAHOO.util.Anim(save, {
			opacity: { from:1, to: 0}
		}, 1, YAHOO.util.Easing.bounceOut);

		new YAHOO.util.Motion(idElement, { points:
		{ by: [-250] }
		}, 1, YAHOO.util.Easing.bounceOut).animate();
		new YAHOO.util.Anim(idElement, {
			opacity: { from:0, to: 1}
		}, 1, YAHOO.util.Easing.bounceOut).animate();

		var removeElement = function(){
			this.getEl().style.display = "none";
		}

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

		this.elementSave = idElement;

	},
	page:function(){
		if(this.displayPage){
			new YAHOO.util.Motion("displayPage", { points:
			{ by: [0, 26] }
			}, 1, YAHOO.util.Easing.easeBothStrong).animate();
			new YAHOO.util.Anim("displayPage", {
				opacity: { from:1, to: 0}
			}, 1, YAHOO.util.Easing.easeBothStrong).animate();
			
			new YAHOO.util.Motion(init.calqueContenu, { points:
			{ by: [0, -26] }
			}, 1, YAHOO.util.Easing.easeBothStrong).animate();
			
			this.displayPage = false;
		}else{
			new YAHOO.util.Motion("displayPage", { points:
			{ by: [0, -26] }
			}, 1, YAHOO.util.Easing.easeBothStrong).animate();
			new YAHOO.util.Anim("displayPage", {
				opacity: { from:0, to: 1}
			}, 1, YAHOO.util.Easing.easeBothStrong).animate();
			
			new YAHOO.util.Motion(init.calqueContenu, { points:
			{ by: [0, 26] }
			}, 1, YAHOO.util.Easing.easeBothStrong).animate();
			this.displayPage = true;
		}
	}
}

//Chargement des flux XML distants
var xmlRequest = {
	handleSuccess:function(o){
		document.getElementById("loading").style.display = "none";
		init.zoneContenu.style.display = "block";
		init.zoneContenu.innerHTML = o.responseText;
		new YAHOO.util.Anim(init.zoneContenu, {
			opacity: { from:0, to: 1}
		}, 1, YAHOO.util.Easing.bounceOut).animate();
	},
	handleFailure:function(o){
		document.getElementById("loading").style.display = "none";
		alert( o.status + " " + o.statusText)
	},
	handleSuccessYmap:function(o){
		document.getElementById("loading").style.display = "none";
		init.gmapAnalyse(o);
	},
	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"
};
var callbackYmap ={
	success: xmlRequest.handleSuccessYmap,
	failure: xmlRequest.handleFailure,
	scope:xmlRequest,
	argument: "ok"
};