function makeEditable(id, type) /* Also known as editEditable()*/
{
	var element = document.getElementById(id);
	if (element) {
		Event.observe(id, 'click', function(){edit($(id), $(type))}, false);
		if (type != 2) Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
		if (type != 2) Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
	}
	
	return (false);
}

function makeTrucEditable(id, type){
	var i = 1;
	var image = null;
	
	do
	{
		imageId	= id+i;
		image	= document.getElementById(imageId);
		if (image) makeEditable(imageId, type);
		i++;
	}
	while (image)
}

function deleteEntry(id, type)
{
	var obj = document.getElementById(id);
	Element.hide(obj);
	
	var editarea = '<div id="'+obj.id+'_editor" style="color:#900;font-size: 1.5em;font-weight:bold;text-align:center;padding-bottom:10px;padding-top:5px;">';
	editarea+= 'Etes-vous certain de vouloir effacer cette entr&eacute;e?<br /><br />';
	editarea+= '<input id="'+obj.id+'_save" type="button" value="Effacer" class="BtnOk" /> ';
	editarea+= '<input id="'+obj.id+'_cancel" type="button" value="Annuler" class="BtnCancel" />';
	editarea+= '</div>';

	new Insertion.After(obj, editarea);
	
	Event.observe(obj.id+'_save', 'click', function(){deleteEntryRow(obj, $(type))}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
	
	return (false);
}

function edit(obj, type) {
	Element.hide(obj);
	// Removes all HTML tags, we don't want that do we?
	var inner	= obj.innerHTML.replace(/(<([^>]+)>)/ig,"");
	var style	= '';
	var taclass	= '';
	if (type == 2) style = ' style="margin-left: 0;margin-top: 15px;padding-left:0;"';
	if (type == 3) taclass = ' style="margin:0;padding:0;width: 678px;text-align: center;"';
	if (type == 4) {
		type = 3;
		taclass = ' style="margin:0;padding:0;width: 180px;text-align: center;"';
		
	}
	var editarea = '<div id="'+obj.id+'_editor">';
	if (type == 2) editarea	+= '<input type="text" id="'+obj.id+'_title" name="'+obj.id+'_title" '+style+' class="inputedit" />';

	if ((type != 1) && (type != 3)) editarea	+= '<textarea id="'+obj.id+'_edit" name="'+obj.id+'" rows="4" cols="60"'+style+'>';
	else editarea	+= '<input type="text" id="'+obj.id+'_edit" name="'+obj.id+'" maxlength="255" value="';
	if (type != 2) editarea	+= trimAll(inner);
	if ((type != 1) && (type != 3)) editarea	+= '</textarea>';
	else editarea	+= '" class="inputedit"'+taclass+' />';
	
	var button	 = '<div class="EditButtons"><input id="'+obj.id+'_save" type="button" value="Sauvegarder" class="BtnOk" /> ';
	button	+= '<input id="'+obj.id+'_cancel" type="button" value="Annuler" class="BtnCancel" /></div></div>';
	
	 new Insertion.After(obj, editarea+button);
	
	Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj, $(type))}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
	
	return (false);
}

function showAsEditable(obj, clear){
	if (!clear){
		Element.addClassName(obj, 'editable');
	}else{
		Element.removeClassName(obj, 'editable');
	}
}

function deleteEntryRow(obj, type)
{
	var content_id = obj.getElementsByTagName('input')[0];
	var edit_field	= document.getElementById(obj.id+'_editor');
	
	edit_field.innerHTML = getLoadData();

	var success	= function(t){editComplete(t, obj, 2);}
	var failure	= function(t){editFailed(t, obj);}
	
  	var url = '/contents/php/editinplace.php';
	var pars = 'type=';
	if (type == 2) pars+= 'DeleteP';
	if (type == 1) pars+= 'DeleteT';
	pars+='&id='+content_id.value;
	
	//alert(url+'?'+pars);
	var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});
}

function saveChanges(obj, type)
{
	var new_content	= escape($F(obj.id+'_edit'));
	var edit_field	= document.getElementById(obj.id+'_editor');
	var content_id	= document.getElementById('EditContentId');
	if (obj.id != 'Truc0')
		if (content_id == null) var content_id = obj.getElementsByTagName('input')[0];
	if (type == 2) {
		var new_title = escape($F(obj.id+'_title'));
	}
	if (type == 3) {
		content_id = document.getElementById('Truc'+getNumber(obj.id)).getElementsByTagName('input')[0];
	}
	if (edit_field) edit_field.innerHTML = getLoadData(type);
	
	//obj.innerHTML = 'Saving...'
	
	//obj.style.background = "url('../images/mid_bg.jpg')";
	//cleanUp(obj,true);
	
	var success	= function(t){editComplete(t, obj, type);}
	var failure	= function(t){editFailed(t, obj);}
	
  	var url = '/contents/php/editinplace.php';
	var pars = 'type='+obj.id+'&content='+new_content;
	if (content_id) pars += '&id='+content_id.value;
	if (type == 2) pars += '&title='+new_title;

	var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});
}
function smallSave(id, type)
{
	var new_content	= escape($F(id));
	var success	= function(t){editComplete(t, null, type);}
	var failure	= function(t){editFailed(t, obj);}
	
  	var url = '/contents/php/editinplace.php';
	var pars = 'type='+id+'&content='+new_content;
	
	var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});
}

function SendContact(id)
{
	var objRoot 	= document.getElementById(id);
	var frm			= objRoot.getElementsByTagName('form')[0];
	var fnom		= objRoot.getElementsByTagName('input')[0];
	var femail		= objRoot.getElementsByTagName('input')[1];
	var ftitre		= objRoot.getElementsByTagName('input')[2];
	var fcont		= frm[3];
	
	var fc1 = fcont.innerHTML;
	if (fc1 == '' || fc1 == null) fcontent = fcont.value;
	else fcontent = fc1;

	if ((fnom.value==null) || (fnom.value=="")) {
		alert('SVP. Entrez votre nom!');
		fnom.focus();
		return (false);
	} else if ((femail.value==null) || (femail.value=="")) {
		alert('SVP. Entrez votre courriel!');
		femail.focus();
		return (false);
	} else if (!checkEmail(femail.value)) {
		alert('Cette adresse de courriel n\'est pas valide!');
		femail.focus();
		return (false);
	} else if ((ftitre.value==null) || (ftitre.value=="")) {
		alert('SVP. Entrez un titre!');
		ftitre.focus();
		return (false);
	} else if ((fcontent==null) || (fcontent=="")) {
		alert('SVP. Entrez un message!');
		fcont.focus();
		return (false);
	} else {
		Element.hide(objRoot);
		
		new Insertion.After(objRoot, '<div id="'+objRoot.id+'_editor">'+getLoadData(4)+'</div>');
		
		var success	= function(t){editComplete(t, objRoot, 5);}
		var failure	= function(t){editFailed(t, objRoot);}

		var url = '/contents/php/sendcontact.php';
		var pars = 'type='+objRoot.id+'&fnom='+escape(fnom.value)+'&femail='+escape(femail.value)+'&ftitre='+escape(ftitre.value)+'&fcontent='+escape(fcontent);

		var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});
	}
	
	return (false);
}
function checkEmail(email) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) return (true)
	else return (false)
}
function getNumber ( str )
{
	return str.replace(/^[A-Z|a-z]+/g, '').replace(/[a-z|A-Z]+$/g, ''); 
}

function getLoadData (type)
{
	/* Won't work in IE */
	var load_data	= '<div style="text-align:center;"><img src="./contents/images/loading.gif" alt="Sauvegarde en cours..."/>';
	if ((type != 1) && (type != 3)) load_data += '<br />Sauvegarde en cours...';
	load_data += '</div>';
	
	return load_data;
}

function cleanUp(obj, keepEditor) {
	Element.remove(obj.id+'_editor');
	Element.show(obj);
	showAsEditable(obj, true);
}

function editComplete(t, obj, type){
	if ((type == 2) || (type == 4)) window.location.reload(true);
	else {
		obj.innerHTML = t.responseText;
		cleanUp(obj);
	}
}

function editFailed(t, obj){
	if (obj) obj.innerHTML	= 'Une erreur est survenue!';
	if (obj) cleanUp(obj);
	window.location('/?e=5');
}

function trimAll(sString) 
{
	return sString.replace(/^\s+/g, '').replace(/\s+$/g, ''); 
}


function GetImageData (DivID, FormID, HTTPData)
{
	HTTPData.FrmObj = document.getElementById(FormID);
	HTTPData.DivObj = document.getElementById(DivID);
	if ((HTTPData.FrmObj.FormPhoto_File.value == '') || 
		(HTTPData.FrmObj.FormPhoto_File.value == null)) {
		alert('Selectionnez un fichier!');
		HTTPData.FrmObj.FormPhoto_File.focus();
	} else {
	//	alert(FormID+' : '+HTTPData.FrmObj+"\n"+DivID+' : '+HTTPData.DivObj+"\n"+HTTPData.iFrameID+' : '+HTTPData.iFrame);
		
		ShowLoading();
		
		HTTPData.FrmObj.action = '/contents/php/fileuploader.php?mode='+HTTPData.FrmObj.StepCounter.value;
	//	alert("Sending request in mode : "+HTTPData.FrmObj.StepCounter.value+"\n"+HTTPData.FrmObj.action);
		
	//	alert((HTTPData.iFrame == null)+' / '+HTTPData.FrmObj.target+' / '+HTTPData.iFrameID);
		
		if (HTTPData.iFrame == null) HTTPData.FrmObj.target = '';
		else HTTPData.FrmObj.target = HTTPData.iFrameID;
		
		HTTPData.FrmObj.submit();
		HTTPData.FrmObj.action = '';
	}
	
	return (false);
}

function HideFormDiv ( DivObj )
{
	DivObj.style.display = "none";
}

function ShowFormDiv ( NewFrm )
{
	if (NewFrm) HTTPData.DivObj.innerHTML = NewFrm;
	HTTPData.DivObj.style.display = "block";
}

function ShowLoading ( )
{
	var Str	= '<div style="text-align:center;"><img src="/contents/images/loading.gif" alt="Sauvegarde en cours..."/><br />Sauvegarde en cours...<br /></div>';
	HTTPData.StatusObj.innerHTML = Str;
	HTTPData.StatusObj.style.display = "block";
	HideFormDiv(HTTPData.FrmObj);
}

function HideLoading ( msg )
{
	if (!msg) {
		HTTPData.StatusObj.innerHTML = '';
		HTTPData.StatusObj.style.display = "none";
	} else {
		HTTPData.StatusObj.innerHTML = msg;
	}
}

function CallBack ( data, type )
{
	//alert('got callback!');
	msg = null;
	NewFrm = null;
	if (data.search('error') != -1) {
		// Must handle errors!
		var errnbr = getNumber(data);
		var errstr = '';
		switch(errnbr) {
			case 5:
				errstr = 'Selectionnez une image!';
			default: errstr = '';
		}
		msg = 'Erreur lors du t&&eacute;l&eacute;versement... <br />';
		msg+= errstr;
		msg+= '<a href="javascript:HideLoading();window.location.reload(false);">Recommencer</a><br />'+"\n";
		NewFrm = null;
	} else {
		NewFrm = data;
	}
	HideLoading( msg );
	ShowFormDiv( NewFrm );
}

function initHTTPData ( mode )
{
	this.iFrameID	= '_RSIFrame';
	this.ResultID	= '_Result';
	this.StatusObj	= document.getElementById(this.ResultID);
	this.mode		= mode;
	this.data		= null;
	this.iFrame		= FrameIt(this.iFrameID, this.ResultID);
	this.DivObj		= null;
	this.FrmObj		= null;
}
function FrameIt ( iFrameID, ResultID )
{
	var iframe = '<iframe id="'+iFrameID+'" name="'+iFrameID+'" src="about:blank" style="display:none;width:0px; height:0px; border: 0px;"></iframe>'; //style="width: 700px;height: 150px;border: blue solid 2px;"

	var after = document.getElementById(ResultID);
	new Insertion.After(after, iframe);
	
	return document.getElementById(iFrameID);;
}