/*-----------------------------------------------------------------------------------------------*/
//
// Copyright (c) 2008 Agence Clark (http://www.agence-clark.com)
//
/*-----------------------------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------------------------*/
// Init Page
/*-----------------------------------------------------------------------------------------------*/
Event.observe(window, 'load', function(){
	// Edition de l'annonce : Publication
	if($('frm_agenda2')) {typeAnnonce(); maj_prix();}
	//if($('frm_agenda2') && $('option_photo_site')) {ajoutPhoto();}	
	//if($('option_site_annonce_1')) supprObserve(); 
	// Filtres en mode liste
	if($('rubrique_ag')) { // Rubrique
		Event.observe('rubrique_ag', 'change', function(){
			$('frm_filtrer_ag').submit();
		});
	}
	if($('srubrique_ag')) { // Sous Rubrique
		Event.observe('srubrique_ag', 'change', function(){
			$('frm_filtrer_ag').submit();
		});
	}
	if($('public_ag')) { // Public
		Event.observe('public_ag', 'change', function(){
			$('frm_filtrer_ag').submit();
		});
	}
	if($('pays_agenda')) {
		Event.observe('pays_agenda', 'change', function(){
			maj_pays( $F('pays_agenda') );
			if($F('pays_agenda') == 1) {
				$('region_agenda').show();
				$('region_agenda').value="";				
			} else {
				$('region_agenda').hide();
			}
			$('departement_agenda').hide();			
		});
	}	
	if($('region_agenda')) {
		Event.observe('region_agenda', 'change', function(){
			maj_region_agenda( $F('region_agenda') );
			if($F('region_agenda') == "") {
				$('departement_agenda').hide();	
			} else {
				$('departement_agenda').show();
				$('departement_agenda').value="";
			}			
		});
	}		
	if($('new_onglets')){
		var MONewOnglets = new multiOnglet('new_onglets','menu','new_contenu',{
			MO_contenu:'new_contenu',
			MO_callback : 'callbackNewOnglet()'
		});
	}
	if ($('media_annonce')) {
		var ongletMedia = new multiOnglet('media_annonce','onglet_media_annonce','contenu_media_annonce',{
			MO_callback : 'callbackOngletMedia()',
			MO_pos: $F('onglet_actif')
		});
	}
	if($('rubrique_agenda')) {
		Event.observe('rubrique_agenda', 'change', function(){
			maj_srub_agenda( $F('rubrique_agenda'), $('srubrique_agenda') );
		});
	}	
	// Edition de l'evenement
	if($('date_debut_agenda')) $$('.input_date_calendrier').each(function(input){Event.observe(input,'focus',function(){ displayCalendar(this,'dd/mm/yyyy',this,false,false); });});
	if($('periode_agenda')) {
		Event.observe('periode_agenda', 'click', function(){
			this.up(0).next(0).down('p',1).removeClassName('disabled');
			this.up(0).next(0).down('p',1).down('input').disabled="";

		});
		Event.observe('ponctuelle_agenda', 'click', function(){
			this.up(0).next(0).down('p',1).addClassName('disabled');
			this.up(0).next(0).down('p',1).down('input').writeAttribute('disabled', 'disabled').value="";
			if($('calendarDiv')) $('calendarDiv').hide();			
		});
	}
	if($('option_admin_6_annonce')) {
		Event.observe('option_admin_6_annonce', 'focus', function(){
			autoCompleteRechUser();
		});
	}
	if($('descriptif_agenda')) makeItCount('descriptif_agenda',parseInt($('descriptif_agenda_max_caract').value));
	if($('map_geo')) {actionGeoloc();};
});


/*-----------------------------------------------------------------------------------------------*/
// Fonctions
/*-----------------------------------------------------------------------------------------------*/
var actionGeoloc = function(){
	var geocoder = new GClientGeocoder();
	if($F('adresse')==''){
		var adresse = $F('cp_ag')+''+$F('ville_ag')+', '+$F('pays_ag');
	}else{
		var adresse = $F('adresse')
	}
	geocoder.getLocations(adresse, function(cb){
		if(cb.Status.code == 200){
			$('frm_geoloc').hide();
			$('erreur').update('');
			$('map_geo').setStyle({
				height : '300px'
			});
			$('latitude_ag').value = cb.Placemark[0].Point.coordinates[1];
			$('longitude_ag').value = cb.Placemark[0].Point.coordinates[0];	
			mapGeo2($('map_geo'));
		}else{
			$('map_geo').setStyle({
				height : '0px'
			});
			$('erreur').update("impossible de localiser l\'adresse <strong>"+adresse+"</strong><br />Merci de compléter le formulaire suivant");
			$('frm_geoloc').show();
		}
	});	
};
//-- Geolocalisation simple --//
var mapGeo2 = function(id) {
	var map = null;
	map = new GMap2(id);
	map.addControl(new GLargeMapControl3D());		
	map.addControl(new GMapTypeControl());
	markerOptions = {};
	var point = new GLatLng($F('latitude_ag'),$F('longitude_ag'));
	var marker = new GMarker(point, markerOptions);
	map.setCenter(point, 13);
	map.addOverlay(marker);
	map.setMapType(G_HYBRID_MAP);
	GEvent.addListener(map, "click", function(marker, point) {
		$('latitude_ag').value = point.lat();
		$('longitude_ag').value = point.lng();
		map.clearOverlays();
		map.addOverlay(new GMarker(point, markerOptions));
	});
};

var callbackNewOnglet = function(){
	if($('gmap')){
		mapGeo();
	}	
};
var callbackOngletMedia = function(){
	if($('visu_grand')) {
		var defilCoulisse = new SwitchBloc('conteneur_miniature','miniature',{SwiDuree:0.6});
		$$('#liste_conteneur_miniature .miniature a').each(function(e){
			e.onclick = function(){return false};
			Event.observe(e, 'click', function(){
				$('visu_grand').setStyle({backgroundImage : 'url('+e.href+')' });
			});
		});
		GUnload();
	}
	if($('videoPlayer')) {
		GUnload();
	}
	if($('carte_media')){
		mapGeo($("carte_media"));
	}	
};
// Form ajout annonce
var typeAnnonce = function(){
	if ($('type1_agenda')) {
		Event.observe('type1_agenda','click', function(){
			$('parution_mag_2_agenda').fade({duration:0.4});	
			$('parution_mag_3_agenda').fade({duration:0.4});
			resetValue("","");
		});
	}
	if ($('type2_agenda')) {
		Event.observe('type2_agenda','click', function(){
			$('parution_mag_2_agenda').appear({duration:0.4});	
			$('parution_mag_3_agenda').appear({duration:0.4});	
			resetValue(parseInt($('parution_mag_agenda').value)+1,parseInt($('parution_mag_agenda').value)+2);
		});
	}
	if ($('option_mag_4_agenda')) {
		Event.observe($('option_mag_4_agenda'),'click', function(){
			Effect.toggle($('option_photo_magazine'),'appear',{duration:0.2});
		});	
	}
	if ($('option_site_2_agenda')) {
		Event.observe($('option_site_2_agenda'),'click', function(){
			Effect.toggle($('option_site_video'),'appear',{duration:0.2});
		});	
	}
	if ($('option_photo_agenda')) {
		Event.observe($('option_photo_agenda'),'click', function(){
			Effect.toggle($('option_photo_site_pack'),'appear',{duration:0.2});
		});	
	}	
};
var resetValue = function(value,value2){
	$('parution_mag_2_agenda').value = value;
	$('parution_mag_3_agenda').value = value2;
};

var frmAjoutPA = function(){
	var arraySelect = [$('parution_mag_agenda').value , $('parution_mag_2_agenda').value, $('parution_mag_3_agenda').value];
	var arraySelect = arraySelect.without("");
	var arraySelectUniq = arraySelect.uniq();
	if(arraySelect.size() != arraySelectUniq.size()){
		var errorSelect = true;
	}
	if(errorSelect == true ) {
		var liste_erreur = '';
		$('msgAjoutPA').appear({duration:0.3, afterFinish:function(){new Effect.ScrollTo('msgAjoutPA',{offset:-15});}});
		if (errorSelect == true) {
			liste_erreur += '<p><strong>Vous avez s&eacute;lectionn&eacute; plusieurs fois le m&ecirc;me num&eacute;ro pour la parution magazine</strong></p>'
			$('parution_mag_agenda').addClassName('inputError');
			$('parution_mag_2_agenda').addClassName('inputError');
			$('parution_mag_3_agenda').addClassName('inputError');	
		} else {
			$('parution_mag_agenda').removeClassName('inputError');
			$('parution_mag_2_agenda').removeClassName('inputError');
			$('parution_mag_3_agenda').removeClassName('inputError');	
		}
		/*if (errorFile == true) {
			liste_erreur += '<p><strong>Vous devez charger les photographies ou supprimer les champs vides</strong></p>'
		}*/
		$('msgAjoutPA').update(liste_erreur);
		return false
	}
};

// Mise a jour du montant total
var maj_prix = function(){
	$$('#frm_agenda2 input').each(function(listeInput) {
		Event.observe(listeInput, 'click', function(){
			new Ajax.Request(site_url + 'plugins/common/_ajax.php?ACT=maj_prix_agenda',{
				parameters: Form.serialize($('frm_agenda2')),
				onComplete: function(requester){
					if(requester.responseText != "false"){
						$('chiffre_total').update(requester.responseText);
					}
				}
			});									   
		});
	});
};

//-- Ajout de champs photo --//
var ajoutPhoto = function(){
	var div = $('div_ajout_photo');
	var bt = $('bt_ajout_photo');
	Event.observe(bt, 'click', function(){	
		bt.blur();								
		if($$('#div_ajout_photo input[type=file]').length < 10) {
			var lastInput = $$('#div_ajout_photo input[type=file]').last();
			var splitInput = lastInput.id.lastIndexOf('_');
			var nb = parseInt(lastInput.id.substring(splitInput+1)) + 1;
			var valeur_template = {name: 'option_site_agenda_'+nb};
			var template = new Template('<input type="file" name="#{name}" id="#{name}" value="" /><a class="suppr_photo" href="javascript:void(0)"><img src="./images/commun/bouton/bt_suppr.gif" alt="Supprimer" /></a>');
			var nouveau = template.evaluate(valeur_template);
			bt.previous('em').insert({before:nouveau});
			var liste_a = $$('#div_ajout_photo a.suppr_photo').last();
				Event.observe(liste_a, 'click', function(){
					var id_file = this.previous('input[type=file]').id;		
					this.previous('input[type=file]').remove();	
					this.remove();
				});				
		}
	});			 
};
var supprObserve = function(){
	var liste_file = $$('#div_ajout_photo a.suppr_photo').each(function(e_liste_file){	
		Event.observe(e_liste_file, 'click', function(){
			var id_file = this.previous('input[type=file]').id;		
			$(id_file+'_hidden').remove();								
			this.previous('input[type=file]').remove();	
			if(this.previous('a.lien_photo')) this.next('a.lien_photo').remove();	
			this.remove();
		});
	});
};


var frmAgenda1 = function(){
	var errorMessageAg1 = '';
	var listeDate = [$('date_debut_agenda'), $('date_fin_agenda'), $('date_ligne_agenda')];
	var dateJour = $F('date_jour');
	var arrayValueDate = new Array();	
	listeDate.each(function(checkDate){
		var splitCheckDate1 = checkDate.value.indexOf('/');
		var splitCheckDate2 = checkDate.value.lastIndexOf('/');
		var jourParution =  checkDate.value.substring(0, splitCheckDate1);
		var moisParution =  checkDate.value.substring(splitCheckDate1+1, splitCheckDate2);
		var anneeParution =  checkDate.value.substring(splitCheckDate2+1);
		arrayValueDate.push(parseInt(anneeParution+''+moisParution+''+jourParution));
	});	
		
	if($F('date_debut_agenda') == '')  {
		errorMessageAg1 += "<p>La date de l'&eacute;v&eacute;nement est obligatoire.</p>";
		$('date_debut_agenda').addClassName('inputError');
		var errorDateDebut = true;
	} else if(dateJour >= arrayValueDate[0]) {	
			errorMessageAg1 += "<p>La date de l'&eacute;v&egrave;nement doit &ecirc;tre sup&eacute;rieur &agrave; celle du jour.</p>";
			$('date_debut_agenda').addClassName('inputError');
		var errorDateDebut = true;
		} else {
			$('date_debut_agenda').removeClassName('inputError');
		var errorDateDebut = false;
		}
		
	if(arrayValueDate[1] <= arrayValueDate[0]) {
		errorMessageAg1 += "<p>La date du fin de p&eacute;riode doit &ecirc;tre sup&eacute;rieur &agrave; celle du d&eacute;but de p&eacute;riode.</p>";
			$('date_fin_agenda').addClassName('inputError');
		var errorDateFin = true;
		} else {
			$('date_fin_agenda').removeClassName('inputError');
		var errorDateFin = false;
		}	
	
	if($F('date_fin_agenda') =='' && $('date_fin_agenda').disabled == '' )  {
		errorMessageAg1 += "<p>La date de la fin de p&eacute;riode est obligatoire.</p>";
		$('date_fin_agenda').addClassName('inputError');
		var errorDateFin2 = true;
	} else {
		$('date_fin_agenda').removeClassName('inputError');
		var errorDateFin2 = false;
	}
	function temps(date){
		var d = new Date(date[2], date[1] - 1, date[0]);
		return d.getTime();
	}	
	var date_debut = temps($('date_ligne_agenda').value.split('/'));		
	var date_fin = temps($('date_debut_agenda').value.split('/'));
	if($F('date_ligne_agenda') == '')  {
		errorMessageAg1 += "<p>La date de mise en ligne est obligatoire.</p>";
				$('date_ligne_agenda').addClassName('inputError');
		var errorDateLigne = true;
	} else if(dateJour > arrayValueDate[2]) {	
		errorMessageAg1 += "<p>La date de mise en ligne doit &ecirc;tre sup&eacute;rieur &agrave; celle du jour.</p>";
		$('date_ligne_agenda').addClassName('inputError');
		var errorDateLigne = true;
	} else if((date_fin - date_debut) / (1000 * 60 * 60 * 24) >91) {
		errorMessageAg1 += "<p>La date de mise en ligne doit &ecirc;tre au maximum 3 mois avant la date du d&eacute;but de l'&eacute;v&egrave;nement.</p>";
		$('date_ligne_agenda').addClassName('inputError');
			} else {
				$('date_ligne_agenda').removeClassName('inputError');
		var errorDateLigne = false;
			}
	
	param_form = { mep:'msg_global', autoScroll:true, action: 'submit'};
	champs_form = {
		rubrique_agenda: {alerte:'La rubrique est obligatoire.'},
		srubrique_agenda: {alerte:'La sous-rubrique est obligatoire.'},
		titre_agenda: {alerte:'Le titre est obligatoire.'},
		pays_agenda: { alerte:'La localisation du pays est obligatoire.'},
		descriptif_agenda: { alerte:'Le descriptif est obligatoire.'}	
	};

	return formVerif('frm_agenda1', champs_form, param_form,{idMsgGlobal:'msgAgenda', errorMessage:errorMessageAg1});
};

//--> AA, le 19/03/2009 : Chargement des régions d'un pays en AJAX
var maj_pays = function( id_pays ) {
	new Ajax.Request(site_url + 'plugins/common/_ajax.php?ACT=LoadRegion',{
		parameters: {pays : id_pays},
		onComplete: function(requester){
			if(requester.responseText != "false"){
				$('region_agenda').update(requester.responseText);
			}
		}
	});
	maj_region_agenda(99);
}
//--> AA, le 24/03/2009 : Chargement des département d'un pays en AJAX (recette du 23/03/2009)
var maj_region_agenda = function( id_region ) {
	new Ajax.Request(site_url + 'plugins/common/_ajax.php?ACT=LoadDepartement',{
		parameters: {region : id_region},
		onComplete: function(requester){
			if(requester.responseText != "false"){
				$('departement_agenda').update(requester.responseText);
			}
		}
	});
}

//--> AA, le 23/03/2009 : Chargement de la liste des sous-rubriques d'une rubrique en AJAX
var maj_srub_agenda = function( id_rub, id_combo ) {
	new Ajax.Request(site_url + 'plugins/common/_ajax.php?ACT=LoadSousRubriquesAgenda',{
		parameters: {rub : id_rub},
		onComplete: function(requester){
			if(requester.responseText != "false"){
				id_combo.update(requester.responseText);
			}
		}
	});
}
//--> AA, le 02/04/2009 : Spécificités opérateur
var autoCompleteRechUser = function (){
	new Ajax.Autocompleter("option_admin_6_annonce", "autoCompleteRechUser", site_url + "plugins/common/_ajax.php?ACT=autoCompleteRechUser", {
	  paramName: "value", 
	  minChars: 2, 
	  indicator: 'indicator',
	  afterUpdateElement : getSelectionUser,
	  onComplete: function(requester){
			if(requester.responseText != "false"){
				$('autoCompleteRechUser').update(requester.responseText);
			}
		}
	});
};
var getSelectionUser = function(text, li) {
	$('operateur_user_idt').value = li.id ;
};

var mapGeo = function() {
	map = null;
	gc = new GClientGeocoder();
	gc.getLatLng($F('adresse'),function(cb){
		point = new GLatLng(cb.y,cb.x);
		myPov = {
			yaw:0,
			pitch:0,
			zoom:0
		};
		sv = new GStreetviewClient();
		sv.getNearestPanorama(point,function(callback){
			if(callback.code == 200){
				$("carte").insert({bottom:'<div id="streetview"></div>'});
				creerBoutons({streetview:true});
				panoOptions = { latlng:point, pov:myPov};
				pano = new GStreetviewPanorama($("streetview"), panoOptions);
			}else{
				creerBoutons({streetview:false});
			}
		map = new GMap2($("gmap"));
		map.addControl(new GLargeMapControl3D());
		var marker = new GMarker(point);
		map.setCenter(point, 13);
		map.setMapType(G_HYBRID_MAP);
		map.addOverlay(marker);	});

	})

};
var creerBoutons = function(bt){
	$("carte").insert({top:'<div id="bt_map"></div>'});
	$("bt_map").insert({bottom:'<a href="javascript:void(0)" id="bt_plan" class="bt_map on">Plan</a>'});
	$("bt_map").insert({bottom:'<a href="javascript:void(0)" id="bt_mixte" class="bt_map">Mixte</a>'});
	$("bt_map").insert({bottom:'<a href="javascript:void(0)" id="bt_satelite" class="bt_map">Satellite</a>'});
	
	if(bt.streetview == true){
		$("bt_map").insert({bottom:'<a href="javascript:void(0)" id="bt_streetview" class="bt_map on">StreetView</a>'});
		changeCss($('bt_streetview'));		
		Event.observe('bt_streetview','click',function(){
			changeCss(this);							   
			$('streetview').show();
			$('gmap').setStyle({height:'0'});
		});
	}

	Event.observe('bt_satelite','click',function(){
		changeCss(this);							   
		if($('streetview')){
			$('streetview').hide();
		}
		$('gmap').setStyle({height:'410px'});
		map.setMapType(G_SATELLITE_MAP);
	});
	
	Event.observe('bt_mixte','click',function(){
		changeCss(this);							   
		if($('streetview')){
			$('streetview').hide();
		}
		$('gmap').setStyle({height:'410px'});
		map.setMapType(G_HYBRID_MAP);
	});
	
	Event.observe('bt_plan','click',function(){
		changeCss(this);							   
		if($('streetview')){
			$('streetview').hide();
		}
		$('gmap').setStyle({height:'410px'});
		map.setMapType(G_NORMAL_MAP);
	});
};
var changeCss = function(bt){
	$$("#bt_map a").each(function(e){
		e.removeClassName("on");
	});
	bt.addClassName("on");
};
