﻿function gCode(gCodeStart, gCodeEnd, form)
{
	var input = window.document.getElementById(form);
	input.focus();
	
	var scroll = input.scrollTop;

	
	if(typeof document.selection != 'undefined') {
		var range = document.selection.createRange();
		var strToInsert = range.text;
		range.text = gCodeStart + strToInsert + gCodeEnd;
		range = document.selection.createRange();
		if(strToInsert.length == 0)
			range.move('character', -gCodeEnd.length);
		else
			range.moveStart('character', gCodeStart.length + strToInsert.length + gCodeEnd.length);
		
		range.select();
	}
	else if(typeof input.selectionStart != 'undefined') {
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var strToInsert = input.value.substring(start, end);
		input.value = input.value.substr(0, start) + gCodeStart + strToInsert + gCodeEnd + input.value.substr(end);
		var iPos;
		if(strToInsert.length == 0)
			iPos = start + gCodeStart.length;
		else
			iPos = start + gCodeStart.length + strToInsert.length + gCodeEnd.length;
			
		input.selectionStart = iPos;
		input.selectionEnd = iPos;
	}
	else {
		var iPos;
		var re = new RegExp('^[0-9]{0,3}$');
		
		while(!re.test(iPos))
			iPos = prompt("insertion (0.." + input.value.length + "):", "0");
		if(iPos > input.value.length)
			iPos = input.value.length;
			
		var strToInsert = prompt("Veuillez taper le texte");
		input.value = input.value.substr(0, iPos) + gCodeStart + strToInsert + gCodeEnd + input.value.substr(iPos);
	}
	
	input.scrollTop = scroll;

}

function gCodeUrl(form) {
	var input = window.document.getElementById(form);
	input.focus();

	txt_selectionne=getSelection(form);
	if (txt_selectionne.indexOf('http://') == 0
	|| txt_selectionne.indexOf('https://') == 0
	|| txt_selectionne.indexOf('ftp://') == 0
	|| txt_selectionne.indexOf('apt://') == 0)
	{
	texte = 'Veuillez indiquer le texte qui apparaîtra';
	bali = prompt(texte,txt_selectionne);
	if (bali == null) return;
	balise_debut = '[url=';
	balise_fin = ']'+bali+'[/url]';
	}
	else if (txt_selectionne == '')
	{
	texte = 'Veuillez indiquer l\'URL complète';
	bal = prompt(texte,'http://');
	bali = prompt('Veuillez indiquer le texte qui apparaîtra',bal);
	if (bali == null) return;
	balise_debut = '[url='+bal+']'+bali;
	balise_fin = '[/url]';
	}
	else
	{
	texte = 'Veuillez indiquer l\'URL complète';
	bal = prompt(texte,'http://');
	if (bal == null) return;
	balise_debut = '[url='+bal+']';
	balise_fin = '[/url]';

	}
	gCode(balise_debut, balise_fin, form);

	return false;
}

function getSelection(id_textarea) {
     champ = document.getElementById(id_textarea);
 	if (champ.setSelectionRange)
 		return champ.value.substring(champ.selectionStart, champ.selectionEnd);
 	else if (document.selection) {
 		champ.focus();
 		return document.selection.createRange().text;
 	}
 }
