﻿/*
 * Fonction d'affichage/désaffichage d'un élément caché
 */
function display_by_id(idelement_){
	var Elmt = document.getElementById( idelement_);
	if(Elmt.style.display == 'none'){
		Elmt.setStyle('display', 'block');
	}
	else{
		Elmt.setStyle('display', 'none');
	}
}

/*
 * Fonction d'ouverture de popup
 */

function display_map(page)
{
window.open (page, 'Plan d\'accès', config='height=400, width=600, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no')
}

/*
 * Fonction d'ajout d'un texte dans un champ là où se trouve le curseur
 */

function Cursor_AddTexte(where_, txt_){
	//-- Recup l'Objet
	var Obj = document.getElementById( where_);
	if( Obj){
		//-- Focus sur Objet
		Obj.focus();
		if( typeof Obj.selectionStart != "undefined"){
			//-- Position du curseur
			var PosDeb = Obj.selectionStart;
			var PosFin = Obj.selectionEnd;
			//-- Recup. des Chaines
			var Chaine = Obj.value;
			var szAvant = Chaine.substring( 0 , PosDeb);
			var szApres = Chaine.substring( PosFin, Obj.textLength );
			//-- Recup. texte selectionne
			var szSelect = Chaine.substring( PosDeb, PosFin);
			//-- Insertion du texte
			Obj.value = szAvant + txt_ + szApres;
			//-- Replace le curseur
			Obj.setSelectionRange( szAvant.length + txt_.length, szAvant.length + txt_.length );
			//-- Replace le Focus
			Obj.focus();
		}
		else{ // IE and consort
			//-- Recup. de la selection
			var szSelect = document.selection.createRange().text;
			//-- Si du Texte est selectionne on le remplace
			if( szSelect.length > 0){
				var Chaine = document.selection.createRange();
				Chaine.text = txt_ ;
				Chaine.collapse();
				Chaine.select();
			}
			else{
				var Chaine = Obj.value;
				var szMark ="~~";
				//-- Cree un double et insert la Mark ou est le curseur
				var szTmp = document.selection.createRange().duplicate();
				szTmp.text = szMark;
				//-- Recup. la position du curseur
				var PosDeb = Obj.value.search(szMark);
				//-- Recup. des Chaines
				var szAvant = Chaine.substring( 0 , PosDeb);
				var szApres = Chaine.substring( PosDeb, Obj.textLength );
				//-- Insertion du texte
				Obj.value = szAvant + txt_ + szSelect + szApres;
				//-- Repositionne le curseur
				PosDeb += txt_.length;
				//-(*)- Supprime les retours Chariot
				PosDeb -= Get_NbrCR( szAvant);
				//-- Recup de la Chaine
				Chaine = Obj.createTextRange();
				//-- Deplace le Debut de la chaine
				Chaine.moveStart('character', PosDeb);
				//-- Deplace le curseur
				Chaine.collapse();
				Chaine.select();
			}
		}
	}
}

function insertTag(startTag, endTag, textareaId, tagType) {
	var field = document.getElementById(textareaId);
	var scroll = field.scrollTop;
	field.focus();


	if (window.ActiveXObject) {
		var textRange = document.selection.createRange();
		var currentSelection = textRange.text;
	} else {
		var startSelection   = field.value.substring(0, field.selectionStart);
		var currentSelection = field.value.substring(field.selectionStart, field.selectionEnd);
		var endSelection     = field.value.substring(field.selectionEnd);
	}

	if (tagType) {
		switch (tagType) {
			case "lien":
					endTag = "</lien>";
					if (currentSelection) {
							if (currentSelection.indexOf("http://") == 0 || currentSelection.indexOf("https://") == 0 || currentSelection.indexOf("ftp://") == 0 || currentSelection.indexOf("www.") == 0) {
									var label = prompt("Quel est le libellé du lien ?") || "";
									startTag = "<lien url=\"" + currentSelection + "\">";
									currentSelection = label;
							} else {
									var URL = prompt("Quelle est l'url ?");
									startTag = "<lien url=\"" + URL + "\">";
							}
					} else {
							var URL = prompt("Quelle est l'url ?") || "";
							var label = prompt("Quel est le libellé du lien ?") || "";
							startTag = "<lien url=\"" + URL + "\">";
							currentSelection = label;
					}
			break;
			case "citation":
					endTag = "</citation>";
					if (currentSelection) {
							if (currentSelection.length > 30) {
									var auteur = prompt("Quel est l'auteur de la citation ?") || "";
									startTag = "<citation nom=\"" + auteur + "\">";
							} else {
									var citation = prompt("Quelle est la citation ?") || "";
									startTag = "<citation nom=\"" + currentSelection + "\">";
									currentSelection = citation;
							}
					} else {
							var auteur = prompt("Quel est l'auteur de la citation ?") || "";
							var citation = prompt("Quelle est la citation ?") || "";
							startTag = "<citation nom=\"" + auteur + "\">";
							currentSelection = citation;
					}
			break;
		}
	}

	if (window.ActiveXObject) {
		textRange.text = startTag + currentSelection + endTag;
		textRange.moveStart('character', -endTag.length-currentSelection.length);
		textRange.moveEnd('character', -endTag.length);
		textRange.select();
	} else { // Ce n'est pas IE
		field.value = startSelection + startTag + currentSelection + endTag + endSelection;
		field.focus();
		field.setSelectionRange(startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length);
	}

	field.scrollTop = scroll;
}
