  function insert_bb(area, bb_open, bb_close) {
    
	var txt_area = document.getElementById(area);
    
	//Internet Explorer
  	if (document.selection) {
  		txt_area.focus();
		var sel = document.selection.createRange();
  		sel.text = bb_open + sel.text + bb_close;
  	}
  	
	// Gecko
  	else if (txt_area.selectionStart>=0) {
  		var selStart = txt_area.selectionStart;
  		var selEnd = txt_area.selectionEnd;
  		var scrollTop = txt_area.scrollTop;
  
  		txt_area.value = txt_area.value.substring(0, selStart) + bb_open + txt_area.value.substring(selStart, selEnd) 
  			              + bb_close + txt_area.value.substring(selEnd, txt_area.value.length);
  		txt_area.selectionStart = selStart;
  		txt_area.selectionEnd = selEnd + bb_open.length + bb_close.length;
  		txt_area.scrollTop = scrollTop;
  	}
  	// Others
  	else {
  		txt_area.value += bb_open + bb_close;
  	}
  	txt_area.focus();
  }

function insertAtCaret(area, icon1, icon2) {

	var txt_area = document.getElementById(area);
    
	//Internet Explorer
  	if (txt_area.createTextRange) {
		
		var selectedtext = document.selection.createRange().text;
		txt_area.focus();
		var sel = document.selection.createRange();
		sel.text = ' '+icon1+' ';

	}
  	// Gecko
  	else if (txt_area.selectionStart>=0) {

  		var selStart = txt_area.selectionStart;
		var selEnd = txt_area.selectionEnd;
  
  		txt_area.value = txt_area.value.substring(0, selStart) + ' '+icon1 +' '+ txt_area.value.substring(selEnd, txt_area.value.length);
		txt_area.selectionStart = selStart+icon1.length+2;
  		txt_area.selectionEnd = selStart+icon1.length+2;
  	}
  	// Others
  	else {
  		txt_area.value += ' '+icon1 + ' ';
  	}
  	txt_area.focus();
  }

function ixpCodePrompt( id,  bb_code, questiontext, defaulttext ) {

	var txt_area = document.getElementById( id );

	if (txt_area.createTextRange) {				//Internet Explorer
		
		var text = prompt( questiontext, defaulttext );
		
		txt_area.focus();
		if ( text != null && text != defaulttext ) {
			var sel = document.selection.createRange();
  			sel.text = '['+ bb_code+'='+text+']' + sel.text + '[/'+ bb_code+']';
		} else if ( text != null ) {
			var sel = document.selection.createRange();
  			sel.text = '['+ bb_code+']' + sel.text + '[/'+ bb_code+']';
		}

	} else if (txt_area.selectionStart>=0) {	// Gecko
		
		var selStart = txt_area.selectionStart;
		var selEnd = txt_area.selectionEnd;
		var text = prompt( questiontext, defaulttext );

		if ( text != null && text != defaulttext ) {
			txt_area.value = txt_area.value.substring(0, selStart) + '['+ bb_code+'='+text+']' + txt_area.value.substring(selStart, selEnd) + '[/'+ bb_code+']' + txt_area.value.substring(selEnd, txt_area.value.length);
		} else if ( text != null ) {
			txt_area.value = txt_area.value.substring(0, selStart) + '['+ bb_code+']' + txt_area.value.substring(selStart, selEnd) + '[/'+ bb_code+']' + txt_area.value.substring(selEnd, txt_area.value.length);
		}

		txt_area.selectionStart = selStart;
		txt_area.selectionEnd = selEnd + bb_code.length +3 + bb_code.length+3+text.length;
  	
	} else {	// Others
  		txt_area.value += '[' + bb_code + ']' + '[/'+ bb_code + ']';
  	}

  	txt_area.focus();

}


function Validate(subjectId, textareaId, submitId, messageinc, messagetool) {
	var maxchars = 65535;
	var subjectDom = ixpGetElementById(subjectId);
	var textareaDom = ixpGetElementById(textareaId);
	var submitDom = ixpGetElementById(submitId);

	if (textareaDom.value == "" || subjectDom.value == "") {
		if (messageinc == null) {
			messageinc = "Merci de compléter les champs sujet et message.";
		}
		alert(messageinc);
		return false;
	}
	
	if (maxchars != 0) {

		if (textareaDom.createTextRange) {			//Internet Explorer

			return true;

		} else if (textareaDom.selectionStart>=0) {	// Gecko

			if (textareaDom.value.length > maxchars) {
				if (messagetool == null) {
					messagetool = "Votre message est trop long.";
				}
				alert(messagetool);
				textareaDom.focus();
				return false;
			} else {
				submitDom.disabled = true;
				return true;
			}
		
		} else {
			submitDom.disabled = true;
			return true;
		}

	} else {
		submitDom.disabled = true;
		return true;
	}

}
