// JavaScript Document
var Dom = YAHOO.util.Dom;
var result_type_width = 672;
var current_result_type = 'text';
var current_page = 1;
var page_number_height = 19;
var margin_left_container_chiffres = 9;
var scroll_page_number_height = 15;
var region_div_container_cursor;
var ID_div_container_cursor = 'div_container_cursor';
var div_cursor;
var tab_last_scroll_animation = new Array();
tab_last_scroll_animation['text'] = null;
tab_last_scroll_animation['video'] = null;
tab_last_scroll_animation['image'] = null;
var tab_last_resize_animation = new Array();
tab_last_resize_animation['text'] = null;
tab_last_resize_animation['video'] = null;
tab_last_resize_animation['image'] = null;
	

var init = function() {
	div_cursor = Dom.get('div_cursor');
	dd_page_cursor = new YAHOO.example.DDRegion('div_cursor', '', { cont: ID_div_container_cursor });
	
	swfobject.embedSWF("flash/pulse-time.swf", "flashHorloge", "228", "24", "9.0.0","expressInstall.swf", {}, {preloader_color:"#808080", wmode:"transparent", quality:"high"}, {});
	swfobject.embedSWF("flash/pulse-loader.swf?t="+(new Date()).getTime(), "flash_avancement", "197", "186", "9.0.0","expressInstall.swf", {}, {preloader_color:"#808080", wmode:"transparent", quality:"high"}, {id:"loader_pulse"});
	
	update_div_results_dimensions();
	
}
YAHOO.util.Event.onDOMReady(init);

var change_results_type = function(tab_index) {
	var attributes = {
		scroll: { to: [result_type_width*tab_index, 0] }
	};
	var anim = new YAHOO.util.Scroll('affichage-resultats', attributes, 0.8, YAHOO.util.Easing.easeOut);
	anim.animate();
	update_numeros_pages();
	current_page = 1;
	change_page(current_page,true);
	
}

var display_text_results = function() {
	current_result_type = 'text';
	
	Dom.get( 'btn_display_text_result' ).onmouseover = function() {this.className="onglet-barre-fenetre-resultats1-selected";};
	Dom.get( 'btn_display_text_result' ).onmouseout = function() {this.className="onglet-barre-fenetre-resultats1-selected";};
	Dom.get( 'btn_display_text_result' ).className = 'onglet-barre-fenetre-resultats1-selected';
	
	Dom.get( 'btn_display_image_result' ).onmouseover = function() {this.className="onglet-barre-fenetre-resultats2-hover";};
	Dom.get( 'btn_display_image_result' ).onmouseout = function() {this.className="onglet-barre-fenetre-resultats2";};
	Dom.get( 'btn_display_image_result' ).className = 'onglet-barre-fenetre-resultats2';
	
	Dom.get( 'btn_display_video_result' ).onmouseover = function() {this.className="onglet-barre-fenetre-resultats3-hover";};
	Dom.get( 'btn_display_video_result' ).onmouseout = function() {this.className="onglet-barre-fenetre-resultats3";};
	Dom.get( 'btn_display_video_result' ).className = 'onglet-barre-fenetre-resultats3';

	change_results_type(0);
}

var display_image_results = function() {
	current_result_type = 'image';
		
	Dom.get( 'btn_display_text_result' ).onmouseover = function() {this.className="onglet-barre-fenetre-resultats1-hover";};
	Dom.get( 'btn_display_text_result' ).onmouseout = function() {this.className="onglet-barre-fenetre-resultats1";};
	Dom.get( 'btn_display_text_result' ).className = 'onglet-barre-fenetre-resultats1';
	
	Dom.get( 'btn_display_image_result' ).onmouseover = function() {this.className="onglet-barre-fenetre-resultats2-selected";};
	Dom.get( 'btn_display_image_result' ).onmouseout = function() {this.className="onglet-barre-fenetre-resultats2-selected";};
	Dom.get( 'btn_display_image_result' ).className = 'onglet-barre-fenetre-resultats2-selected';
	
	Dom.get( 'btn_display_video_result' ).onmouseover = function() {this.className="onglet-barre-fenetre-resultats3-hover";};
	Dom.get( 'btn_display_video_result' ).onmouseout = function() {this.className="onglet-barre-fenetre-resultats3";};
	Dom.get( 'btn_display_video_result' ).className = 'onglet-barre-fenetre-resultats3';
	
	change_results_type(1);
}

var display_video_results = function() {
	current_result_type = 'video';
	
	Dom.get( 'btn_display_text_result' ).onmouseover = function() {this.className="onglet-barre-fenetre-resultats1-hover";};
	Dom.get( 'btn_display_text_result' ).onmouseout = function() {this.className="onglet-barre-fenetre-resultats1";};
	Dom.get( 'btn_display_text_result' ).className = 'onglet-barre-fenetre-resultats1';
		
	Dom.get( 'btn_display_image_result' ).onmouseover = function() {this.className="onglet-barre-fenetre-resultats2-hover";};
	Dom.get( 'btn_display_image_result' ).onmouseout = function() {this.className="onglet-barre-fenetre-resultats2";};
	Dom.get( 'btn_display_image_result' ).className = 'onglet-barre-fenetre-resultats2';
	
	Dom.get( 'btn_display_video_result' ).onmouseover = function() {this.className="onglet-barre-fenetre-resultats3-selected";};
	Dom.get( 'btn_display_video_result' ).onmouseout = function() {this.className="onglet-barre-fenetre-resultats3-selected";};
	Dom.get( 'btn_display_video_result' ).className = 'onglet-barre-fenetre-resultats3-selected';

	change_results_type(2);
}

var update_div_results_dimensions_params = function(type, position) {
	// on met à jour la taille si l'on est sur l'affichage du type et de la page
	if(type==current_result_type && current_page==position) {
		update_div_results_dimensions();
	}
	if(type==current_result_type){
		update_numeros_pages();
	}
}

var update_div_results_dimensions = function() {
	// on commence par récupérer la taille de la div de résultat pour le type et la page actuelle
	//alert('container_'+current_result_type+'_'+current_page);
	var region_result_page = Dom.getRegion('container_'+current_result_type+'_'+current_page);
	if(region_result_page) {
		var new_height = region_result_page['bottom']-region_result_page['top'];
		
		// on stop la dernière animation de resize portant sur le type courant (évite les tremblements de deux animations qui fonctionnement en meme temps sous IE)
		//alert('3');
		if(tab_last_resize_animation[current_result_type]!=null && tab_last_resize_animation[current_result_type].isAnimated) {
			tab_last_resize_animation[current_result_type].stop();
		}
		//alert('4');
		//On redimmensionne la page
		
		if(new_height > 740){
			Dom.get('degrade_contenu_transparent').height = 250 + new_height;	
		}
		else{
			Dom.get('degrade_contenu_transparent').height = 990;		
		}
		
		//alert(new_height);
		Dom.setStyle('container_'+current_result_type, 'height', new_height+'px');
		//alert('51');
		var attributes = {
			height: { to: new_height }
		};
		
		//alert('6');
		var anim = new YAHOO.util.Anim('affichage-resultats', attributes);
		anim.onStart.subscribe(function() {
			// on stock l'animation dans le tableau global
			tab_last_resize_animation[current_result_type] = anim;
		});
		anim.animate();	
		//alert('7');
	}
	//alert('8');
}

var change_page = function(page_number, move_cursor) {
	// on vérifie que la page existe
	var container_new_result_page = Dom.get('container_'+current_result_type+'_'+page_number);

	if(container_new_result_page) {
		// on stop la dernière animation de scroll portant sur le type courant (évite les tremblements de deux animations qui fonctionnement en meme temps sous IE)
		if(tab_last_scroll_animation[current_result_type]!=null && tab_last_scroll_animation[current_result_type].isAnimated) {
			tab_last_scroll_animation[current_result_type].stop();
		}
		
		var attributes = {
			scroll: { to: [0, container_new_result_page.offsetTop] }
		};
		var anim = new YAHOO.util.Scroll('container_'+current_result_type, attributes, 0.8, YAHOO.util.Easing.easeOut);
		anim.onStart.subscribe(function() {
			// on stock l'animation dans le tableau global
			tab_last_scroll_animation[current_result_type] = anim;
			// on met à jour la hauteur de la div de résultats
			update_div_results_dimensions();
		});
		anim.animate();
		
		if(move_cursor) {
			move_div_cursor(page_number);
		}
	}
}

var move_div_cursor = function(page_number) {
	var a = new YAHOO.util.Motion( 
		div_cursor, { 
			points: { 
				to: [region_div_container_cursor['left'],region_div_container_cursor['top']+scroll_page_number_height+((page_number-1)*page_number_height)]
				//to: [region_div_container_cursor['left']-margin_left_container_chiffres,region_div_container_cursor['top']+((page_number-1)*page_number_height)]
			}
		}, 
		0.2, 
		YAHOO.util.Easing.easeOut 
	)
	a.animate();
}




var Event = YAHOO.util.Event;
var dd_page_cursor;


YAHOO.example.DDRegion = function(id, sGroup, config) {
	this.cont = config.cont;
	YAHOO.example.DDRegion.superclass.constructor.apply(this, arguments);
};

YAHOO.extend(YAHOO.example.DDRegion, YAHOO.util.DD, {
	cont: null,
	init: function() {
		//Call the parent's init method
		YAHOO.example.DDRegion.superclass.init.apply(this, arguments);
		this.initConstraints();

		Event.on(window, 'resize', function() {
			this.initConstraints();
		}, this, true);
	},
	initConstraints: function() {
		//Get the top, right, bottom and left positions
		//region_div_container_cursor = Dom.getRegion('div_container_cursor');
		region_div_container_cursor = Dom.getRegion(ID_div_container_cursor);
		var region = Dom.getRegion(this.cont);
		
		//Get the element we are working on
		var el = this.getEl();

		//Get the xy position of it
		var elRegion = Dom.getRegion(el);
		var xy = Dom.getXY(el);

		//Get the width and height
		var width = elRegion['right']-elRegion['left'];
		var height = elRegion['bottom']-elRegion['top'];
		
		//Set left to x minus left
		var left = xy[0] - region.left;

		//Set right to right minus x minus width
		var right = region.right - xy[0] - width;

		//Set top to y minus top
		var top = xy[1] - region['top'];

		//Set bottom to bottom minus y minus height
		var bottom = region.bottom - xy[1] - height;
		
		// on interdit le scroll var les défilements de page
		bottom -= scroll_page_number_height;
		top -= scroll_page_number_height;

		//Set the constraints based on the above calculations
		this.setXConstraint(left, right);
		this.setYConstraint(top, bottom);
	},
	
    endDrag: function(e) {
        move_div_cursor(current_page);
    },

    onDrag: function(e) {
		var y = Dom.getY(div_cursor);
		var region = Dom.getRegion(this.cont);
		
		// on récupère la position de la tirette dans son container
		var offsetTop = y-region['top']-scroll_page_number_height;
		//var offsetTop = y-region['top'];
		
		if(offsetTop>=0) {
			// on détermine le numéro de page
			var page_number = 1+Math.round(offsetTop/page_number_height);
			
			if(current_page != page_number) {
				current_page = page_number;
				change_page(current_page,false);
			}
		}
	}
});


var click_to_page = function(e) {
	var region = Dom.getRegion(ID_div_container_cursor);
	var y = Event.getPageY(e);
	
	// on récupère la position de la tirette dans son container
	var offsetTop = y-region['top']-scroll_page_number_height;
	//var offsetTop = y-region['top'];
		
	if(offsetTop>=0) {
		
		// on détermine le numéro de page
		var page_number = 1+Math.floor(offsetTop/page_number_height);
		current_page = page_number;
		change_page(current_page,true);
	}
}

Event.addListener('div-selecteur', "click", click_to_page); 

// fonction qui met à jour le % d'accomplissement du flash
var reload_flash = function(new_value) {
	if(typeof(Dom.get('loader_pulse').go_to_load) != 'undefined'){
		Dom.get('loader_pulse').go_to_load(new_value);
	}
}


var stop_flash = function() {
	if(typeof(Dom.get('loader_pulse').stop_load) != 'undefined'){
		Dom.get('loader_pulse').stop_load();
	}
}

var afficher_menu_ajoute_moteur = function() {
	YAHOO.util.Dom.setStyle( YAHOO.util.Dom.get('add_search_provider'), 'display', 'block');
	var attributes = {
		height: { to: 25 }
	};
	
	var anim = new YAHOO.util.Anim('add_search_provider', attributes, 0.6, YAHOO.util.Easing.easeOut);
	anim.animate();
}


var masquer_menu_ajoute_moteur = function() {
	var attributes = {
		height: { to: 0 }
	};
	
	var anim = new YAHOO.util.Anim('add_search_provider', attributes, 0.6, YAHOO.util.Easing.easeOut);
	anim.animate();
	
	YAHOO.util.Dom.setStyle( YAHOO.util.Dom.get('add_search_provider'), 'display', 'none');
	
}

var update_numeros_pages = function() {
	// on récupère le nombre de div résultat pour le type courant
	var div_type_resultat = Dom.get('container_'+current_result_type);
	var i;
	var new_sting_numeros_pages = '<table width="28" border="0" cellspacing="0" cellpadding="0">';
	
	for(i=1;i<=div_type_resultat.childNodes.length;i++) {
		new_sting_numeros_pages += '<tr><td class="number" align="center" valign="middle" height="19px"><a href="#" id="lien_page_'+i+'">';
		if(i<10) {
			new_sting_numeros_pages += '0';
		}
		new_sting_numeros_pages += i+'</a></td></tr>';
	}
	new_sting_numeros_pages += '</table>';
	Dom.get('liste_chiffres').innerHTML = new_sting_numeros_pages;
}


/*********************************** LANGUAGE ***************************************/

var anim_deploy_language;
var anim_inploy_language;

YAHOO.example.init_language = function() {   
	var attributes_deploy = {
		height: { to:120 } //
	};
	var attributes_inploy = {
		height: { to: 15 }  
	};
	
	
	function start_anim_language() {
		document.getElementById('resize_div_language_go').style.display = "none";
		document.getElementById('resize_div_language_close').style.display = "block";
		document.getElementById('div_language').style.display = "block";
	}  
	 
	function end_anim_language()	{
		document.getElementById('resize_div_language_go').style.display = "block";
		document.getElementById('resize_div_language_close').style.display = "none";		
		document.getElementById('div_language').style.display = "none";
	}  
	
	anim_deploy_language= new YAHOO.util.Anim('div_language', attributes_deploy, 0.5, YAHOO.util.Easing.easeOut );
	anim_inploy_language= new YAHOO.util.Anim('div_language', attributes_inploy, 0.5, YAHOO.util.Easing.easeOut );
	
	anim_deploy_language.onStart.subscribe(start_anim_language);
	anim_inploy_language.onComplete.subscribe(end_anim_language);
	

};
YAHOO.util.Event.onAvailable('div_language', YAHOO.example.init_language);

var change_language = function(new_language_code, new_language_name) {
	Dom.get('resize_div_language_close').value = new_language_name;
	Dom.get('resize_div_language_go').value = new_language_name;
	Dom.get('language').value = new_language_code;
}

/******************************************************************************************************/



/********************************************* MEDIA **************************************************/

var anim_deploy_media;
var anim_inploy_media;

YAHOO.example.init_media = function() {   
	var attributes_deploy = {
		height: { to:140 } //
	};
	var attributes_inploy = {
		height: { to: 15 }  
	};
	
	
	function start_anim_media() {
		document.getElementById('resize_div_media_go').style.display = "none";
		document.getElementById('resize_div_media_close').style.display = "block";
		document.getElementById('div_media').style.display = "block";
	}  
	 
	function end_anim_media()	{
		document.getElementById('resize_div_media_go').style.display = "block";
		document.getElementById('resize_div_media_close').style.display = "none";		
		document.getElementById('div_media').style.display = "none";
	}  
	
	anim_deploy_media= new YAHOO.util.Anim('div_media', attributes_deploy, 0.5, YAHOO.util.Easing.easeOut );
	anim_inploy_media= new YAHOO.util.Anim('div_media', attributes_inploy, 0.5, YAHOO.util.Easing.easeOut );
	
	anim_deploy_media.onStart.subscribe(start_anim_media);
	anim_inploy_media.onComplete.subscribe(end_anim_media);
	

};
YAHOO.util.Event.onAvailable('div_media', YAHOO.example.init_media);

var change_media = function(new_media_code, new_media_name) {
	Dom.get('resize_div_media_close').value = new_media_name;
	Dom.get('resize_div_media_go').value = new_media_name;
	Dom.get('media').value = new_media_code;
}

/******************************************************************************************************/