// Appel ajax pour le chargement de la page 'coming soon'
function comingsoonAjaxCall(toUpdate) {
	new Request.HTML({
		url: "./ajax/comingsoon_data.php5",
		method: "post",
		update: (toUpdate == undefined ? $('content_wrapper') : $(toUpdate)),
		onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
			var jsonObj = JSON.decode(this.getHeader('X-JSON'));
			if(jsonObj) {
				switch (jsonObj._status) {
					case 'request_successful':
						//$('content_wrapper').setStyle('display', 'block');
						var loc = document.location.href;
						if(loc.indexOf("r2.php5") != -1) {
							$('top_calendar_line').setStyle('display', 'none');
							$('calendar_header').setStyle('display', 'none');
							$('calendar_wrapper').setStyle('display', 'none');
						}
						
						// Switch content_wrapper / temp_wrapper
						$('temp_wrapper').setStyle('display', 'none');
						$('content_wrapper').setStyle('display', 'block');
						break;
				}
			}
		}
	}).send("ajax=yes");
}

// Javascript version of PHP's basename
function basename (path, suffix) {
  // http://kevin.vanzonneveld.net
  // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  // +   improved by: Ash Searle (http://hexmen.com/blog/)
  // +   improved by: Lincoln Ramsay
  // +   improved by: djmix
  // *     example 1: basename('/www/site/home.htm', '.htm');
  // *     returns 1: 'home'

  var b = path.replace(/^.*[\/\\]/g, '');
  
  if (typeof(suffix) == 'string' && b.substr(b.length-suffix.length) == suffix) {
      b = b.substr(0, b.length-suffix.length);
  }
  
  return b;
}

// Validation formulaires
function verifemail(email) {
	var pattern = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
  return pattern.test(email);
}

function verifheure(heure) {
	var pattern = /^((([01][0-9])|(2[0-3]))[:]([0-5][0-9]))$/;
  return pattern.test(heure);
}

function verifjour(jour) {
	var reponse = /^((0[1-9])|([12][0-9])|(3[0-1]))[/]((0[1-9])|(1[0-2]))[/]((200[1-9])|(201[0-9]))$/;
	if(!reponse.test(jour)){
		alert("Format incorrect pour la date !\nVous devez respecter le format suivant : 'jj/mm/aaaa'");
		return false;
	} else {
		return true;
	}
}

// Popup RADIO
function radio_popup(radio_url, format) {
	var props = 'toolbar=no,location=no,status=no,scrollbars=no,menubar=no,resizable=yes,copyhistory=no,width=260,height=290';
	popupWin = window.open('./radio_popup.php5?radio_url=' + radio_url + '&format=' + format, 'Radio', props);
	popupWin.focus();
}

// Gestionnaire des jours du calendrier - AJAX
function getCalendar(toSend) {
	// Activation du bon onglet du calendrier, modification de la variable 'jour' et mise à jour du formulaire "inner_link"
	var jour = toSend.substring(toSend.lastIndexOf("=") + 1); // On récupère la valeur du champ 'jour' transmise dans toSend
	$$('ul#calendar_header li[class~=active]')[0].removeClass('active');
	$(jour).addClass('active');
	var target_x = $(jour).getPosition('calendar_header').x;
	$('calendar_tab').setStyle('left', target_x - 1);
	$('calendar_tab').setStyle('cursor', 'wait');
	$('asd').value = jour;
	
	new Request.HTML({
		url: "./ajax/calendar_data.php5",
		method: "post",
		update: $('calendar_wrapper'),
		onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
			var jsonObj = JSON.decode(this.getHeader('X-JSON'));
			if(jsonObj) {
				switch (jsonObj._status) {
					case 'request_successful':
						// Affichage des header et wrapper du calendrier (dans le cas où ils avaient été masqués)
						if(document.location.href.indexOf("r2.php5") != -1)
							$('top_calendar_line').setStyle('display', 'block');
						$('calendar_header').setStyle('display', 'block');
						$('calendar_wrapper').setStyle('display', 'block');
						
						// Cursor
						$('calendar_tab').setStyle('cursor', 'default');
						
						// On positionne à nouveau l'onglet sur le bon jour - cas où l'on vient d'une sous rubrique où il n'y avait pas de calendrier (la position du jour ne peut donc être déterminée que maintenant, i.e. après affichage du calendrier)
						var target_x = $(jour).getPosition('calendar_header').x;
						$('calendar_tab').setStyle('left', target_x - 1);
						
						// On fixe la hauteur des 'time_line' à la hauteur des li.title (qui peuvent passer sur plusieurs lignes)
						$$('ul[class=time_line]').each(function(ul) {
							var li_title = ul.getFirst('li');
							var li_height = li_title.getSize().y;
							li_title.setStyle('zoom', 1); // Hack pour IE6 ! Doit être placé à cet endroit précis (sinon IE6 ne parvient pas à calculer la hauteur du li) !!!
							ul.setStyle('height', li_height);
						});
						
						// Cas de la rubrique Infos pratiques (un clic sur un nom de lieu doit permettre l'affichage de l'onglet infop)
						if(document.location.href.indexOf("r3.php5") != -1) {
							$$('ul[class=time_line] li[id^=l_]').addEvent("click", function(e) {
								var tab_wrapper = $('infop_tab_wrapper');
								if(e.target.hasClass('title_infop')) {
									if($$('ul[class=time_line] li[class=title_infop_active]')[0]) {
										var other_active = $$('ul[class=time_line] li[class=title_infop_active]')[0];
										other_active.removeClass('title_infop_active');
										other_active.addClass('title_infop');
									}
									tab_wrapper.set('html', '<div class="infop_ajax_loader"><img src="./img/ajax_loader_2.gif" alt="" /></div>');
									tab_wrapper.setStyle('top', e.target.getCoordinates($('top_container')).bottom);
									tab_wrapper.setStyle('left', 20);
									tab_wrapper.setStyle('display', 'block');
									infop_tabAjaxCall(e.target.id.substring(2));
								} else {
									tab_wrapper.setStyle('display', 'none');
								}
								e.target.toggleClass('title_infop');
								e.target.toggleClass('title_infop_active');
							});
						}
						break;
				}
			}
		}
	}).send(toSend);
}

/* **********************************************
   *** Gestionnaire des combos des 'menu_bis' ***
   ********************************************** */
var myTween; // Instantiation de la variable objet Fx.Tween

function initialize_combo() { // Initialisation du combo
	// Permet de fixer l'opacité de 'select_opt_wrapper' à 0
	$('select_opt_wrapper').fade('hide');
	
	// Instantiation de l'objet Fx.Tween pour l'affichage du combo déplié
	myTween = new Fx.Tween('select_opt_wrapper', {
		duration: 300,
		onComplete: function() {
			if (Browser.Engine.trident) { // IE7 text opacity bug
				if($('select_opt_wrapper').getStyle('opacity') == 1) $('select_opt_wrapper').style.removeAttribute('filter');
			}
		}
	});
	
	// Positionnement du combo déplié par rappor au combo replié
	$('select_opt_wrapper').setStyle('top', $('select_combo').getCoordinates('top_container').top);
  $('select_opt_wrapper').setStyle('left', $('select_combo').getCoordinates('top_container').left);
  
  // Gestion du click sur le combo replié
  $('select_combo').addEvent("click", function(e) {
		new Event(e).stop();
		
		$('menu').setStyle('z-index', 0);
		$('menu').setStyle('position', 'static');
		
		var current_val = $('select_opt_wrapper').getStyle('opacity');
		myTween.start('opacity', current_val, Math.abs(current_val - 1));
	});
  
  // Gestion du click sur un élément du combo déplié
  $$('ul#select_opt_ul li').addEvent("click", function(e) {
		$('menu').setStyle('z-index', 1200);
		$('menu').setStyle('position', 'relative');
		
		var current_val = $('select_opt_wrapper').getStyle('opacity');
		myTween.start('opacity', current_val, Math.abs(current_val - 1));
		
		if(e.target.get('id') != 'select_li_first') {
			$$('div#addToMenuBis ul li').removeClass('active');
			
			$('select_combo').set('text', e.target.get('text'));
			$('select_combo').addClass('active');
			
			if(!e.target.hasClass('active')) { // Gestion de l'action à effectuer en fonction de la rubrique
				if(document.location.href.indexOf("r8.php5") != -1) { // Archives
					mosaicAjaxCall("&eid=" + e.target.id);
					// Mise à jour du formulaire "inner_link"
					$('sr').value = '3';
					$('i').value = '0';
					$('seg').value = '0';
					$('y').value = e.target.id;
				} else if(document.location.href.indexOf("r6.php5") != -1) { // Presse
					if(e.target.id.substring(3) == "press") {
						getPressData('todo=press_kit_page');
						// Mise à jour du formulaire "inner_link"
						$('sr').value = '0';
						$('i').value = '0';
					} else if(e.target.id.substring(3) == "expo") {
						mosaicAjaxCall("&expousoiree=expo");
						// Mise à jour du formulaire "inner_link"
						$('sr').value = '1';
						$('i').value = '0';
					} else if(e.target.id.substring(3) == "performance") {
						mosaicAjaxCall("&expousoiree=performance");
						// Mise à jour du formulaire "inner_link"
						$('sr').value = '2';
						$('i').value = '0';
					} else if(e.target.id.substring(3) == "soiree") {
						mosaicAjaxCall("&expousoiree=soiree");
						// Mise à jour du formulaire "inner_link"
						$('sr').value = '3';
						$('i').value = '0';
					} else if(e.target.id.substring(3) == "art_schools") {
						getPressData('todo=art_schools');
						// Mise à jour du formulaire "inner_link"
						$('sr').value = '6';
						$('i').value = '0';
					} else if(e.target.id.substring(3) == "2_bios") {
						getPressData('todo=2_bios');
						// Mise à jour du formulaire "inner_link"
						$('sr').value = '4';
						$('i').value = '0';
					} else if(e.target.id.substring(3) == "logo_affiche") {
						getPressData('todo=logo_affiche');
						// Mise à jour du formulaire "inner_link"
						$('sr').value = '5';
						$('i').value = '0';
					}
				} else if(document.location.href.indexOf("r5.php5") != -1) { // Ressources en ligne
					dataAjaxCall("todo=get_resource_page&edition_id=" + e.target.id, $('content_wrapper'));
					// Mise à jour du formulaire "inner_link"
					$('sr').value = e.target.id;
					$('i').value = '0';
				}
			}
			
			$$('ul#select_opt_ul li').removeClass('active');
			e.target.addClass('active');
		}
	});
}
function hide_combo(select_text) { // Restauration de l'état initial du combo
	$('menu').setStyle('z-index', 1200);
	$('menu').setStyle('position', 'relative');
	
	$('select_combo').set('text', select_text);
	$('select_combo').removeClass('active');
	
	$('select_opt_wrapper').setStyle('visibility', 'hidden');
	$$('ul#select_opt_ul li').removeClass('active');
}
/* *** Gestionnaire des combos des 'menu_bis' *** */


/* *** D O M  R E A D Y *** */
window.addEvent("domready", function() {
	/* *** Fix IE6 background image flicker *** */
	if(/MSIE (6)/.test(navigator.userAgent)) {
		try {
			document.execCommand("BackgroundImageCache", false, true);
		} catch(err) { }
	}
	
	// Gestionnaire du Menu principal
	$$('ul#menu li a').addEvent("click", function(e) {
		new Event(e).stop();
		var short_href = e.target.get('href').substring(0, e.target.get('href').indexOf('?'));
		document.location.href = "./" + short_href;
	});
	
	// Gestionnaire des jours du calendrier
	if($('calendar_header')) {
		$$('ul#calendar_header li[id!=calendar_tab]').addEvent("click", function(e) {
			$$('ul#calendar_header li[class~=active]')[0].removeClass('active');
			e.target.addClass('active');
			var target_x = e.target.getPosition('calendar_header').x;
			$('calendar_tab').setStyle('left', target_x - 1);
			
			if(document.location.href.indexOf("r2.php5") != -1) { // Programmation
				var sous_rubrique_id = $$('div#addToMenuBis ul li[class~=active]')[0].id;
				if(sous_rubrique_id.indexOf("program_expo_") != -1) {
					var type = "expo";
				} else if(sous_rubrique_id.indexOf("program_performances") != -1) {
					var type = "performance";
				} else if(sous_rubrique_id.indexOf("program_soirees_") != -1) {
					var type = "soiree";
				}
			} else if(document.location.href.indexOf("r7.php5") != -1) { // Evénements partenaires
				var type = "partenaire";
			}
			var jour = e.target.id;
			getCalendar("type=" + type + "&jour=" + jour);
		});
	}
	
	// Gestionnaires "Recherche" champ/bouton
	function search_function() {
		var search_val = $('search').get('value');
		if(search_val != "" && search_val != "Rechercher" && search_val != "Search") {
			$('search_form').submit();
		}
	}
	
	if($('search_button')) {
		$('search_button').addEvent("click", function(e) {
			new Event(e).stop();
			search_function();
		});
	}
	if($('search_form')) {
		$('search_form').addEvent("submit", function(e) {
			new Event(e).stop();
			search_function();
		});
	}
});
