var url_site_spip = '';

window.onload = function (){
	url_site_spip = $("input[@id=url_site_spip]").attr('value');
	
	/* ouverture des liens externes dans une nouvelle fenetre */
	liens	= document.getElementsByTagName('a');
	nb 		= liens.length;
	host	= window.location.href.replace(/(http:\/\/[^\/]+).*/, '$1');
	for (var i = 0; i < nb; i++) {
		if (liens[i].href.match(/^http:\/\//) && liens[i].href.indexOf(host) < 0) {
			liens[i].setAttribute('target', '_blank');
		}
	}
	
	arr_defs = document.getElementsByTagName('dfn');
	arr_acrs = document.getElementsByTagName('acronym');
	insere_infobulles(arr_defs);
	insere_infobulles(arr_acrs);

	body_tag	= document.getElementsByTagName('body')[0];
	body_id		= body_tag.id;
	
	switch (body_id){
	case 'qui-sommes-nous' :
		titres_onglets = $('h2');
		nb = titres_onglets.length;
		for (var i = 0; i < nb; i++) {
			titres_onglets[i].onclick = function () {
				/* determine l'id de la rubrique */
				id_rubrique = this.id.replace(/titre-onglet-rubrique-/, '');
				affiche_onglet(id_rubrique);
			}		
		}
		
		url = window.location.href;
		var match = url.match('onglet=([0-9]+)');
		num_onglet = 0;
		if (match != null) {
			num_onglet = parseInt(match[1]) - 1;
		}
		if (isNaN(num_onglet) || num_onglet < 0) {
			num_onglet = 0;
		}		
		//num_onglet = 2;
		/* active le 1er onglet */
		affiche_onglet($('h2:eq(' + num_onglet + ')').attr('id').replace(/titre-onglet-rubrique-/, ''));
		
		/* place l'ouverture des popups sur les liens des vaches */
		$('a[@class=lien-detail-vache]').bind('click', function(index) { return open_popup(this.getAttribute('href'), 540, 570); });
		
		/* ouverture de popups pour aggrandissement images "qui sommes nous"
			contenu-onglet
			@id=onglet-rubrique-10
		*/
		$('div[@class=contenu-onglet]/div/p/span').each(function (i){
			//alert(this.getAttribute('className'));	
		
			var class_name	= (this.getAttribute('class') ? this.getAttribute('class') : (this.getAttribute('className') ? this.getAttribute('className') : ''));
			matches		= class_name.match(/spip_document_([0-9]+)/);
			if (matches.length == 2) {
				// selectionne le tag 
				$('span[@class=' + class_name + ']/img').wrap('<a href="' + $('input[@id=url_site_spip]').attr('value') + '/image' + matches[1] + '.html"></a>');
				$('span[@class=' + class_name + ']/a').bind('click', function(index) { return open_popup(this.getAttribute('href'), 540, 570); });
			}
		});
	break;
	case 'produits' :
		//alert('ici');
		$('a[@class=lien-image]').bind('click', function(index) { return open_popup(this.getAttribute('href'), 550, 570); });
	break;
	case 'invitation' :
		
		//$('input[@id=email]').attr('onblur', 'check_email()');
		form = NEW_Validator('frm-code-production', 'check_frm_invitation');
		form.addField('code_production', true);
		form.addField('code_categorie_produit', true);
		
		if (parseInt($('input[@id=code_client]').attr('value')) == 0) {
			form.addField('email', true, 'email');
			form.addField('devenir_membre', true);
		}
		form.addField('accepte_reglement', true);
		
		
		$('a[@class=lien-popup]').bind('click', function(index) { return open_popup(this.getAttribute('href'), 540, 540); });
	break;
	case 'password' :
		if ($('form[@id=frm-password]').length > 0) {
			form = NEW_Validator("frm-password");
			form.addField("email", true, 'email');
		}
	break;
	case 'inscription' :
		form = NEW_Validator("frm-client", "frm_client_extra");
		
		//form.addField('nom', requis, type, format);
		//form.addField("code", true);
		//form.addField("date_creation", true);
		form.addField("civilite", true);
		form.addField("prenom", true);
		form.addField("nom", true);
		form.addField("date_naissance", true, 'date');
		form.addField("adresse", true);
		form.addField("code_postal", true);
		form.addField("ville", true);
		form.addField("email", true, 'email');
		form.addField("mot_passe", true);
		form.addField("confirm_mot_passe", true);

		//function extra_validation(){
		//	return true;
			//form.raiseError('mortel');
			//alert(form.field('inscrit').value());
		//}		
	break;
	case 'blog' :
		/* shunte le bloc "lien hypertexte" */
		//$('fieldset:eq(1)').css('display', 'none');
		if ($('fieldset[@class=previsu]').length == 1) {
			/* masque le formulaire de saisie de message */
			$('form fieldset:eq(2)').css('display', 'none');
			$('form fieldset:eq(3)').css('display', 'none');
			$('form fieldset:eq(4)').css('display', 'none');
			$('form input[@value=Voir ce message avant de le poster]').css('display', 'none');
		}
		
		//$('#sondage .spip_bouton').attr('value', 'Voter');
		
	break;
	case 'contact' :
		// si on est en mode previsualisation
		if ($('fieldset[@class=previsu]').length == 1) {
			/* masque le formulaire de saisie de message */
			$('fieldset:eq(2)').css('display', 'none');
		}
		
		$('fieldset[@class=reponse_formulaire]/p').empty();
		$('fieldset[@class=reponse_formulaire]/p').append('Votre message a bien été envoyé.<br />Nous le traiterons le plus rapidement possible.<br /><br />Amicalement<br />Emmanuel Peard ');
		
		
		// supprime l'intro a la validation
		if ($('div[@class=formulaire_spip formulaire_ecrire_auteur]/form').length == 0) {
			$('div[@id=contenu-article]').empty();
		}
	break;
	case 'travaux-moment' :
		if (!detecte_flash()) {
			$('div[@id=flash-notice]').attr('class', 'error');
		}	
	break;
	}
	
	/* intercepte les erreurs fonctionnelles levées dans l'objet application */
	var err_msg = $('input[@id=func_errors]').attr('value');
	if (err_msg != null && err_msg != '') {
		alert(err_msg.replace(';', '\n'));
	}
}


function open_popup(url, width, height){
	newwindow = window.open(url,'name','height= ' + height + ',width=' + width + ',resizable=1,scrollbars=1');
	if (window.focus) {newwindow.focus()}
	return false;	
}

function frm_client_extra(){
	if ($('input[@id=mot_passe]').attr('value') != $('input[@id=confirm_mot_passe]').attr('value')) {
		form.raiseError('confirmation du mot de passe differente du mot de passe saisi');
		return false;
	}
	return true;
}

/* vérifie pendant la saisie d'un code invitation si l'adresse email est ou pas dans la base */
function check_frm_invitation(){
	
	var code_client = parseInt($('input[@id=code_client]').attr('value'));
	if (isNaN(code_client)) {
		code_client = 0;
	}
	if (code_client > 0) {
		//return true;
	}
	
	/* verifie l'adresse e-mail saisie par l'internaute */
	var retour = true;
	xml_http = $.ajax({
		type: "GET",
		url: url_site_spip + "/ajax_recherche_client.php",
		data: 'email=' + $("input[@id=email]").attr('value'),
		async: false,
		success: function (result) {
			result = parseInt(result);
			if (result == 0) {
				result == 0;
			}		
			
			/* ne traite que le cas d'un client pas identifie, son adresse e-mail ne doit pas etre presente dans la base */			
			if (result > 0) {
				if (confirm('Cette adresse e-mail est déjà présente dans la base.\nCliquez sur "OK" pour vous identifier,\ncliquez sur "Annuler" pour corriger votre adresse email.')) {
					/* rediriger ver page de login */
					window.location.href = $('input[@id=url_site_spip]').attr('value') + '/pre-des-membres/identification.html?email=' + $("input[@id=email]").attr('value');
					retour = false;
				} else {
					/* permettre a l'utilisateur de modifier son adresse e-mail */
					form.raiseError('corrigez votre adresse email');
					retour = false;
				}			
			} else {
				/* nouveau client */
				retour = true;
			}
		}
	});
	
	/* verifie que le code invitation est bien dans la base */
	code_invitation = $("input[@id=code_production]").attr('value');
	if (retour == true && code_invitation != null && code_invitation != '' && code_invitation != undefined) {
		xml_http = $.ajax({
			type: "GET",
			url: url_site_spip + "/ajax_check_code_production.php",
			data: 'code_production=' + code_invitation,
			async: false,
			success: function (result) {
				result = parseInt(result);
				if (isNaN(result) || result == 0) {
					form.raiseError('Le code invitation "' + code_invitation + '" n\'est pas valide');
					retour = false;
				}
			}
		});
	}
	
	/* vérifie si le client n'a pas déjà saisi ce code invitation */
	return retour;
}

function error_log(message){
	try{
	xml_http = $.ajax({
		type: "GET",
		url: url_site_spip + "/ajax_log.php",
		data: 'message=' + message,
		async: true,
		success: function (result) {
			return;
		},
		error:function (result) {
			return;		
		}
	});
	} catch(e){
		alert(e);
	}
}

/** 
	Détection plugin flash a ameliorer pour demander une version specifique
	cf : http://www.misfu.com/static/Javascript/flash.html
*/
function detecte_flash(){
	var installed = false;
	app_plugins = (navigator.plugins && navigator.plugins.length > 0 ? navigator.plugins : (navigator.mimeTypes && navigator.mimeTypes.length > 0 ? navigator.mimeTypes : null));

	if (app_plugins != null) {		
		//str_plugins = '';
		for (key in app_plugins) {
			if (app_plugins[key].name != undefined && app_plugins[key].name.match(/([fF]lash|[Ss]hockwave)/)) {
				installed = true;
				//str_plugins += app_plugins[key].name;
				break;
			} else {
				if (app_plugins[key].description && app_plugins[key].description.match(/([fF]lash|[Ss]hockwave)/)) {
					installed = true;
					//str_plugins += app_plugins[key].description;
					break;
				}
			}
		}
	} else {
		var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		//alert(flash);
		for (var i = 7; i > 0; i--) {
			try {
				var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i);
				installed = true;
				break;
			} catch(e){
					//alert(e);				
			}
		}
	}
	return installed;
}


function affiche_onglet(id_rubrique){
	$('div[@class=contenu-onglet]').hide();
	$('h2').attr('class', 'off');
	$('div[@id=onglet-rubrique-' + id_rubrique + ']').show();
	$('h2[@id=titre-onglet-rubrique-' + id_rubrique + ']').attr('class', 'en-cours');
}


function insere_infobulles(html_elements){
	nb = typeof(html_elements) == 'object' ? html_elements.length : 0;
	for (i = 0; i < nb; i++) {
		if (html_elements[i].getAttribute('title')) {
			
			html_elements[i].insertBefore(document.createElement('span'), html_elements[i].firstChild);
			html_elements[i].firstChild.setAttribute('className', 'cartouche-def');
			html_elements[i].firstChild.setAttribute('class', 'cartouche-def');

			html_elements[i].firstChild.appendChild(document.createElement('span'));
			html_elements[i].firstChild.appendChild(document.createElement('span'));
			
			html_elements[i].firstChild.getElementsByTagName('span')[0].setAttribute('className', 'cartouche-def-haut');
			html_elements[i].firstChild.getElementsByTagName('span')[0].setAttribute('class', 'cartouche-def-haut');
			html_elements[i].firstChild.getElementsByTagName('span')[1].setAttribute('className', 'cartouche-def-int');
			html_elements[i].firstChild.getElementsByTagName('span')[1].setAttribute('class', 'cartouche-def-int');
			html_elements[i].firstChild.getElementsByTagName('span')[1].appendChild(document.createTextNode(html_elements[i].getAttribute('title')));
			html_elements[i].setAttribute('title', '');
			
			html_elements[i].onmouseover = function () {
				this.firstChild.style.display = 'block';
				//alert(this.nodeName + this.getAttribute('title') + this.firstChild.nodeName);
			}
			
			html_elements[i].onmouseout = function () {
				this.firstChild.style.display = 'none';
				//alert(this.getAttribute('title'));
			}
		}
	}
}

