var maquette_open_small_width = 392;
var maquette_open_big_width = 588;
var maquette_open_width = 0;
var maquette_close_width = 196;


slidemaquette = new Object;
slidemaquette.opened = "";
slidemaquette.viewport_first = 0; // id de la 1er maquette actuellement visible
slidemaquette.viewport_first_fleches = 1; // id de la 1er maquette actuellement visible pour l'affichage des flèches
slidemaquette.viewport_max = 5; // nb max de maquette dans le view port
slidemaquette.nb_maquettes = 12; // nb total de maquettes
slidemaquette.kind = 0; // 0 = slide de la home / 1 = slide en grand
slidemaquette.current_point_id = ""; // point actuellement selectionné
slidemaquette.rotation_without_ajaxcall = false; // pour faire la rotation sans demander l'affichage ensuite de la fiche de base de la maquette
	
slidemaquette.init = function() {
	slidemaquette.opened = "";
	slidemaquette.viewport_first = 0;
	slidemaquette.viewport_first_fleches = 1;
	slidemaquette.create_move();
	slidemaquette.create_click();

	slidemaquette.create_rotation_click();
	slidemaquette.create_point();
	slidemaquette.current_point_id = "";
	slidemaquette.current_clicked_point_id = "";
		
	if($('slide_maquette_kind').value == "small") {
		maquette_open_width = maquette_open_small_width;
		slidemaquette.kind = 0;
	} else {
		maquette_open_width = maquette_open_big_width;
		slidemaquette.kind = 1;
	}

	// on regarde si on doit ouvrir une maquette et un point
	maq_real_id = $('maquette_open_me_maq_real_id').value;
	if(maq_real_id != "") {
		maq_id = $('maquette-real-id-reverse_' + maq_real_id).value;
	} else {
		maq_id = "";
	}
		
	pt_id = $('maquette_open_me_pt_id').value; 
	face_id = $('maquette_open_face_id').value;

	if(maq_id != "" && pt_id  != "") {
		lesargs = Array();
		lesargs[0] = maq_id;
		lesargs[1] = face_id;
		lesargs[2] = pt_id;
		slidemaquette.ouvrir_point_from_init.delay("500","",  lesargs);
		return;
	}
	
	//On ouvre une maquette si l'on vient de home, mais sans lien précisé
	maquette_id = $('maquette_open_maquette_descriptif').value;
	if(maquette_id != "") {
		// on ouvre la maquette
		maquette_id--;
		slidemaquette.ouvrir_maq_from_init.delay(500,"",maquette_id);
	}

	slidemaquette.afficher_fleches.delay(1000,"");
	
}

slidemaquette.afficher_fleches = function() {
	if(slidemaquette.viewport_first_fleches == 1) {
		$("maquette_move_gauche").setStyle("display", "none");
	}
}
slidemaquette.ouvrir_maq_from_init = function(maquette_id) {
	$("maquette_" + maquette_id).fireEvent('click');
}

slidemaquette.ouvrir_point_from_init = function(maq_id, face_id, pt_id) {
		// on ouvre la maquette
		$("maquette_" + maq_id).fireEvent('click');
			// si c'est une produit de la face avant demandé, il faut tourner l'image
	
		if(face_id == 1) {
			slidemaquette.rotation_without_ajaxcall = true;
			slidemaquette.rotation_click.delay(550,"",maq_id);			
			// on recontruit l'id de la div de notre point et on click			
			my_point_id = "point-" + maq_id + "-3-" + pt_id + "-0";
		} else {
			my_point_id = "point-" + maq_id + "-2-" + pt_id + "-0";
		}
	
	
		$(my_point_id).fireEvent('mouseover',"",750);
		$(my_point_id).fireEvent('click',"",250);
		
}		

slidemaquette.create_point = function() {
	
	for(maq=0;maq<slidemaquette.nb_maquettes;maq++) {
	
		if(t_points[maq] == null) {
			ewaconsole.log("t_points est NULL");
			break;
		}
		max_pt = t_points[maq].length;
		for(pt=0;pt<max_pt;pt++) {
			ewaconsole.log(t_points[maq][pt].x + ", " + t_points[maq][pt].y + "," + t_points[maq][pt].ref + "," + t_points[maq][pt].face + "," + t_points[maq][pt].kind);
	
			// crea de la div du point
			if(t_points[maq][pt].kind == 0){
				ewaconsole.log("kind = 0");
				var monpoint = new Element('div', {
					'class': 'maq_point_prod',
					'events': {
						'click': function(){
							slidemaquette.point_click(this.id);
						 },
						 'mouseover': function(){
							slidemaquette.point_mouseover(this.id);
						},
						 'mouseout': function(){
							slidemaquette.point_mouseout(this.id);
						}					
					}
				});
			} else {
					ewaconsole.log("kind = 1");
					var monpoint = new Element('div', {
					'class': 'maq_point_notice',
					'events': {
						'click': function(){
							slidemaquette.point_click(this.id);
						 },
						 'mouseover': function(){
							slidemaquette.point_mouseover(this.id);
						},
						 'mouseout': function(){
							slidemaquette.point_mouseout(this.id);
	
						}					
					}
				});
			}
			
			// insertion du point + def de son id
			monpoint.id = "point-" + maq + "-" + t_points[maq][pt].face + "-" + t_points[maq][pt].ref + "-" + t_points[maq][pt].kind;
			lid = monpoint.id;
			monpoint.inject($('content-' + t_points[maq][pt].face + '_' + maq), "top");
			$(lid).setStyle("margin-left", t_points[maq][pt].x - "420");
			$(lid).setStyle("margin-top", t_points[maq][pt].y - "125");

			
		}
	}
}
 
 
slidemaquette.create_move = function() {
	$('maquette_move_droite').addEvents({
	    'click': function(){
					if(slidemaquette.opened != "") {
						slidemaquette.fermer(slidemaquette.opened);
		        slidemaquette.move.delay(500,'',1);
					} else {
						slidemaquette.move(1);
					}
	    }
	});
	
	$('maquette_move_gauche').addEvents({
	    'click': function(){
					if(slidemaquette.opened != "") {
						slidemaquette.fermer(slidemaquette.opened);
		        slidemaquette.move.delay(500,'',-1);
					} else {
						slidemaquette.move(-1);
					}
	    }
	});	
	
	ewaconsole.log("create_move done");
}

slidemaquette.create_click = function() {
	$$('div.maquette').each(
		function(el) {
			el.addEvent(
	    'click', function(){
	        slidemaquette.click(this);
	    }.bind(el));
		}
	);
}

slidemaquette.create_zoom_click = function() {
	$$('img.img_zoom').each(
		function(el) {
			el.addEvent(
	    'click', function(){
	        slidemaquette.zoom_click(this);
	    }.bind(el));
		}
	);
}

slidemaquette.create_rotation_click = function() {
	$$('img.img_rotation').each(
		function(el) {
			el.addEvent(
	    'click', function(){
	        slidemaquette.rotation_click(this);
	    }.bind(el));
		}
	);
}


slidemaquette.move = function(nb) {
	current_pos = $('maquette_container').getStyle("margin-left");
	if(current_pos == null || current_pos == "") { current_pos = 0; }
	current_pos = current_pos.replace(/px/,'') * 1;
	nb = nb * -1;
	new_pos = current_pos + (nb*maquette_close_width);
	ewaconsole.log("slidemaquette.move : current_pos = " + current_pos + " / new_pos = " + new_pos);
	$('maquette_container').tween("margin-left", new_pos);
	slidemaquette.viewport_first -= nb;
	slidemaquette.viewport_first_fleches -= nb;
	ewaconsole.log("slidemaquette.move : viewport_first = " + slidemaquette.viewport_first);
	if(slidemaquette.viewport_first_fleches == 1) {
		$("maquette_move_gauche").setStyle("display", "none");
		
	} else if(slidemaquette.viewport_first_fleches >= slidemaquette.nb_maquettes-4) {
		$("maquette_move_droite").setStyle("display", "none");
	} else {
		$("maquette_move_gauche").setStyle("display", "");
		$("maquette_move_droite").setStyle("display", "");
	}
}

/* click sur le btn zoom d'une maquette */
slidemaquette.zoom_click = function(these) {
	alert(these.id);
}

/* click sur le btn rotation d'une maquette */
slidemaquette.rotation_click = function(these) {
	
	slidemaquette.current_clicked_point_id = "";
	if($("content-2_"+id).getStyle("display") != "none"){
		$("content-2_"+id).setStyle("display", "none");
		$("content-3_"+id).setStyle("display", "");
		// a cause ie7 (voir + bas) il faut qu'on restaure le texte maquette
		// a cas ou un point avait été cliqué
		if(slidemaquette.rotation_without_ajaxcall == true) {
			slidemaquette.rotation_without_ajaxcall = false;
			//slidemaquette.maquette_request(id, 3);
		}
		
	} else {
		$("content-2_"+id).setStyle("display", "");
		$("content-3_"+id).setStyle("display", "none");
		if(slidemaquette.rotation_without_ajaxcall == true) {
			slidemaquette.rotation_without_ajaxcall = false;
			//slidemaquette.maquette_request(id, 2);
		}
	}
	
	// suite du fix ie7....
	slidemaquette.current_clicked_point_id = "";
	
	// fix a cause de ie7 : les points n'étaient pas 'visible' alors que créé et tout bien
	// donc à présent on les détruits, on les refaits, et on les rend visible
	slidemaquette.rotation_click_suite.delay(50,'',these);

}

// fix ie7
slidemaquette.rotation_click_suite = function(these) {

	// on detruit tous les points
	$$('div.maq_point_prod').each(
		function(el) {
			el.destroy();
		}
	);
	$$('div.maq_point_notice').each(
		function(el) {
			el.destroy();
		}
	);
	
	// on créé les points
	slidemaquette.create_point();
	
	// on les rend visibles
	$$('div.maq_point_prod').each(
		function(el) {
			el.setStyle("display", "block");
		}
	);
	$$('div.maq_point_notice').each(
		function(el) {
			el.setStyle("display", "block");
		}
	);
	
}

/* click sur une maquette => on l'agrandi, si agrandi on fait rien */
slidemaquette.click = function(these) {
	ids = these.id.split("_");
	id = ids[1];
	
	
	// si la maquette ouverte est celle que l'on veut on sort.
	if(slidemaquette.opened == id) {
		return;
	}
	
	// une maquette est elle ouverte ? si oui on la ferme
	if(slidemaquette.opened != "") {
			slidemaquette.fermer(slidemaquette.opened);
			slidemaquette.postionner.delay(1000, '', id);
			slidemaquette.ouvrir.delay(500, '', id);
	}
	else {
		slidemaquette.postionner.delay(500, '', id);
		slidemaquette.ouvrir(id);
	}
	
}

// positionner une maquette à la pos 2 du viewport
// important : il faut que toutes les maquettes soient fermées
slidemaquette.postionner = function(id) {
	ewaconsole.log("avant pos : viewport_first = " + slidemaquette.viewport_first);
	
	deplacement = id - (slidemaquette.viewport_first + 1); // nb de deplacement pour aller au view port 2
	ewaconsole.log("id = " + id + " / deplacement de : " + deplacement);
	slidemaquette.move(deplacement);
	
	ewaconsole.log("apres pos : viewport_first = " + slidemaquette.viewport_first);
}

// ouvrir une maquette
slidemaquette.ouvrir = function(id) {
	// on commence l'ouverture
	$('maquette_' + id).set('tween', {duration: 'normal'});
	$('maquette_' + id).tween('width', 0);
	slidemaquette.ouvrir_suite.delay(500,"", id);
	if(slidemaquette.viewport_first_fleches == 0) {
		slidemaquette.fleche.delay(500, '', 1);
	} else if(slidemaquette.viewport_first_fleches == slidemaquette.nb_maquettes-4) {
		slidemaquette.fleche.delay(500, '', 0);
	}
	if(id == 0){
			slidemaquette.fleche.delay(600, '', 1);
	}
}

slidemaquette.ouvrir_suite = function(id) {
	$('content-1_' + id).setStyle("display", "none");
	$('content-3_' + id).setStyle("display", "none");
	$('content-2_' + id).setStyle("display", "");
	$('maquette_' + id).tween('width', maquette_open_width);
	slidemaquette.opened = id;
	slidemaquette.ouvrir_suite_suite.delay(500,"",id);
}

slidemaquette.ouvrir_suite_suite = function(id) {
	// on fait apparaitre les points
	$$('div.maq_point_prod').each(
		function(el) {
			el.setStyle("display", "block");
		}
	);
	$$('div.maq_point_notice').each(
		function(el) {
			el.setStyle("display", "block");
		}
	);
}

slidemaquette.fleche = function($li) {
	if($li == 1) {
		$("maquette_move_gauche").setStyle("display", "none");
	} else {
		$("maquette_move_droite").setStyle("display", "none");
	}	
}


// fermer une maquette
slidemaquette.fermer = function(id) {		
	// on remet a l'état pas over le point précédemment cliqué
	slidemaquette.point_remove_click_class(slidemaquette.current_clicked_point_id);
	slidemaquette.current_clicked_point_id = "";
	
	//on fait disparaitre les points avant la fermeture du slide
	$$('div.maq_point_prod').each(
		function(el) {
			el.setStyle("display", "none");
		}
	);
	
	$$('div.maq_point_notice').each(
		function(el) {
			el.setStyle("display", "none");
		}
	);	
	
	$('maquette_' + id).set('tween', {duration: 400});
	$('maquette_' + id).tween('width', 0);
	slidemaquette.fermer_suite.delay(400,"", id);
	
}

slidemaquette.fermer_suite = function(id) {
	$('content-1_' + id).setStyle("display", "");
	$('content-2_' + id).setStyle("display", "none");
	$('content-3_' + id).setStyle("display", "none");
	$('maquette_' + id).set('tween', {duration: 'short'});
	$('maquette_' + id).tween('width', maquette_close_width);
	slidemaquette.opened = "";
}


// enleve la class over d'un point
slidemaquette.point_remove_click_class = function(id) {
	if(id == "") {
		return;
	}
	ids = id.split("-");
	maq_id = ids[1];
	face_id = ids[2];
	pt_id = ids[3];	
	kind_clicked = ids[4];
	if(kind_clicked == 0){
		$(id).removeClass("maq_point_prod_over");
	} else {
		$(id).removeClass("maq_point_notice_over");	
	}
}

// met la class over d'un point
slidemaquette.point_add_click_class = function(id) {
	if(id == "") {
		return;
	}
	ids = id.split("-");
	maq_id = ids[1];
	face_id = ids[2];
	pt_id = ids[3];	
	kind_clicked = ids[4];
	if(kind_clicked == 0){
		$(id).addClass("maq_point_prod_over");
	} else {
		$(id).addClass("maq_point_notice_over");	
	}
}



	// click sur le point d'une maquette
	slidemaquette.point_click = function(id) {
	// si y a un pt precedemment clické on degage la class over
	if(slidemaquette.current_point_id != slidemaquette.current_clicked_point_id) {
		slidemaquette.point_remove_click_class(slidemaquette.current_clicked_point_id);
	}
	if(slidemaquette.current_clicked_point_id == id) {
		ids = slidemaquette.current_point_id.split("-");
		maq_id = ids[1];	
		face_id = ids[2];
		slidemaquette.maquette_request(maq_id, face_id);	
		slidemaquette.point_remove_click_class(id);
		slidemaquette.current_clicked_point_id = "";
	} else {
		slidemaquette.point_add_click_class(id);
		slidemaquette.current_clicked_point_id = id;
		slidemaquette.point_request(id);
	}
	
}

// over sur un point d'une maquette
slidemaquette.point_mouseover = function(id) {
	ids = id.split("-");
	maq_id = ids[1];
	face_id = ids[2];
	pt_id = ids[3];
	kind = ids[4];
	if(kind == 0){
		$(id).addClass("maq_point_prod_over");
	} else {
		$(id).addClass("maq_point_notice_over");	
	}
	slidemaquette.current_point_id = id;
	if(slidemaquette.current_point_id != slidemaquette.current_clicked_point_id) {
		slidemaquette.point_request(id);
	}
}

// out sur un point d'une maquette
slidemaquette.point_mouseout = function(id) {
	ids = id.split("-");
	maq_id = ids[1];
	face_id = ids[2];
	pt_id = ids[3];
	kind = ids[4];

	// on vire la class over si on doit le faire
	if(id !=  slidemaquette.current_clicked_point_id) {
		ewaconsole.log("over = " + id + "/" + slidemaquette.current_clicked_point_id);
		if(kind == 0){
			$(id).removeClass("maq_point_prod_over");
		} else {
			$(id).removeClass("maq_point_notice_over");	
		}
	}
	
	// si yavait un point cliqué on le restaure
	if(slidemaquette.current_clicked_point_id != "") {
		if(slidemaquette.current_point_id != slidemaquette.current_clicked_point_id) {
			slidemaquette.point_request(slidemaquette.current_clicked_point_id);		
		}
	} 
	// sinon on vide la zone d'info
	else {
		ids = slidemaquette.current_point_id.split("-");
		maq_id = ids[1];	
		face_id = ids[2];
		slidemaquette.maquette_request(maq_id, face_id);		
		
	}
	slidemaquette.current_point_id = "";
}

// req ajax pour avoir les info sur le point id
slidemaquette.point_request = function(id) {
var req = new Request({
	method: 'get',
  url: "/ajax/getmaquettepointinfo.php",
  data: { 'id' : id },
   onRequest: function() { slidemaquette.point_waitloading(id); },
   onComplete: function(response) { slidemaquette.point_show_request(id, response) }
  }).send();

}

// pour la req ajax : le waitloafing
slidemaquette.point_waitloading = function(id) {
	ids = id.split("-");
	maq_id = ids[1];
	face_id = ids[2];
	pt_id = ids[3];
	myid = "texte-" + face_id + "-" + maq_id;
	ewaconsole.log(	myid);
	//$(myid).innerHTML[0] = "wait...";
	document.getElementById(myid).innerHTML = "<div class='ajax_loader'><img src='/img/ajax-loader.gif'></div>";
}

// pour la req ajax : le retour d'info + son affichage
slidemaquette.point_show_request = function(id, response) {
	ids = id.split("-");
	maq_id = ids[1];
	face_id = ids[2];
	pt_id = ids[3];
	kind = ids[4];
	myid = "texte-" + face_id + "-" + maq_id;
	//$(myid).setHTML = response;
	document.getElementById(myid).innerHTML = response;
	produitmaqpt.init();
}

// nettoyer la zone d'info NB: id = est un id de point
slidemaquette.point_show_clean = function(id) {
	ids = id.split("-");
	maq_id = ids[1];
	face_id = ids[2];
	pt_id = ids[3];	
	myid = "texte-" + face_id + "-" + maq_id;
	//$(myid).setHTML = response;
	document.getElementById(myid).innerHTML = "";
	ewaconsole.log("clean de la zone");
}


// req ajax pour avoir les info sur le point id
slidemaquette.maquette_request = function(maq_id, face_id) {
	real_id = $('maquette-real-id_' + maq_id).value;
	var req = new Request({
	method: 'get',
  url: "/ajax/getmaquetteinfo.php",
  data: { 'id' : real_id },
   onRequest: function() { slidemaquette.maquette_waitloading(maq_id, face_id); },
   onComplete: function(response) { slidemaquette.maquette_show_request(maq_id, face_id, response) }
  }).send();

}

// pour la req ajax : le waitloafing
slidemaquette.maquette_waitloading = function(maq_id, face_id) {
	myid = "texte-" + face_id + "-" + maq_id;
	ewaconsole.log(	myid); 
	//$(myid).innerHTML[0] = "wait...";
	document.getElementById(myid).innerHTML = "<div class='ajax_loader'><img src='/img/ajax-loader.gif'></div>";
}

// pour la req ajax : le retour d'info + son affichage
slidemaquette.maquette_show_request = function(maq_id, face_id, response) {
	myid = "texte-" + face_id + "-" + maq_id;
	//$(myid).setHTML = response;
	document.getElementById(myid).innerHTML = response;
}



window.addEvent('domready',function() { 
			
		slidemaquette.init();
	}
);


