var listmodules= new Array();
var wordsearch="";
var currentcampaign=0;
var currentmodule;
var timerportalrefresh;
var timerportalrefreshcampaign;
var timerusersportalrefresh;
var idrecord_over;
var idobj_over;
var idmod_over;
var timerdisplayresult;
var eventcour;
var statesearch;
var optx;
var opty;
var optw;
var opth;
var old_idobject="";
var old_idrecord="";
var old_idmodule="";
var cur_idobject;
var cur_idrecord;
var cur_idmodule;
var cur_idworkspace;
var cur_auto;
var typefavorite;
var blockclosepopup;

function updateTypeSearch(type) {
	dims_xmlhttprequest_tofunction('admin.php','dims_op=updateTypeSearch&type='+type,reloadWindow);
}

function renderGeographic(listpays) {
	dims_showcenteredpopup("",970,600,'dims_popup');
	dims_xmlhttprequest_todiv('admin.php','dims_op=view_geographic&listpays='+listpays,'','dims_popup');
}

var dernier_clic;
dernier_clic ='';

function checkdept(dept) {
	carte_svg = document.getElementById('carte').getSVGDocument();
	selectdept(carte_svg.getElementById('dept_'+dept));
}

function getElementsByClassName(classname, node) { if (!node) { node = document.getElementsByTagName('body')[0]; } var a = [], re = new RegExp('\\b' + classname + '\\b'); els = node.getElementsByTagName('*'); for (var i = 0, j = els.length; i < j; i++) { if ( re.test(els[i].className) ) { a.push(els[i]); } } return a; }

function selectWorld(classname) {
	var carte_svg = document.getElementById('carte').getSVGDocument();
	var x = carte_svg.getElementsByTagName("g");

	//re = new RegExp('\\b' + classname + '\\b');

	for(var i=0;i<x.length;i++) {
		var e=carte_svg.getElementById(x[i].id);
		if (x[i].id==classname) {
		//if ( re.test(e.getAttribute('class')) ) {
			e.setAttribute('style','fill:#0000ff');
			var r = e.getElementsByTagName("path");

			for(var j=0;j<r.length;j++) {
				var z=carte_svg.getElementById(r[j].id);

				z.setAttribute('style','fill:#0000ff');
			}
		}
	}
}

function switchDiv(name,id,nb) {
	for(i=1;i<=nb;i++) {
		document.getElementById(name+i).style.visibility="hidden";
		document.getElementById(name+i).style.display="none";
	}
	document.getElementById(name+id).style.visibility="visible";
	document.getElementById(name+id).style.display="block";
}

function validChangeTypeaddTodo() {
	var elem=$('todo_type');
	var val=elem.selectedIndex;
	var elem=$('contentswitchtodo');
	if (val==1) {
		elem.style.visibility='visible';
		elem.style.display='block';
	}
	else {
		elem.style.visibility='hidden';
		elem.style.display='none';
	}
}

function object_searchFileInitSearch(element) {
    $("nomsearch"+element).value="";
    $("nomsearch"+element).focus();
    dims_xmlhttprequest_tofunction('admin.php','dims_op=initSearchObject',object_searchUserExec,element);
}

function object_searchUser(element) {
    clearTimeout(timerdisplayresult);
    timerdisplayresult = setTimeout("object_searchUserExec('',"+element+")", 300);
}

function object_searchUserExec(result,element) {
    var nomsearch=$("nomsearch"+element).value;
    dims_xmlhttprequest_todiv('/admin.php','dims_op=object_search_user&element='+element+'&nomsearch='+nomsearch,'||',"lst_tempuser"+element,"lstselectedusers"+element);
	$("nomsearch"+element).focus();
}

function object_updateUserActionFromSelected(element,op,id_user,input) {
    dims_xmlhttprequest_tofunction('/admin.php','dims_op='+op+'&element='+element+'&id_user='+id_user,object_searchUserExec,element);
}

function object_updateContactActionFromSelected(element,op,id_contact,input) {
    dims_xmlhttprequest_tofunction('/admin.php','dims_op='+op+'&element='+element+'&id_contact='+id_contact,object_searchUserExec,element);
}

function object_updateGroupActionFromSelected(element,op,id_grp,input) {
    dims_xmlhttprequest_tofunction('/admin.php','dims_op='+op+'&element='+element+'&id_grp='+id_grp,object_searchUserExec,element);
}


function displayAddTodo(event,objectid,moduleid,recordid,userid) {
	if (userid==null) {
		userid=0;
	}
	dims_showcenteredpopup("",700,500,'dims_popup');
	dims_xmlhttprequest_todiv('admin.php','dims_op=add_todo&element='+objectid+"&moduleid="+moduleid+"&recordid="+recordid+'&userid='+userid,'','dims_popup');
}

function displayShareObject(event,idworkspace,id_object) {
	dims_showcenteredpopup("",950,600,'dims_popup');
	dims_xmlhttprequest_todiv('admin.php','dims_op=shareobject_view&id_workspace='+idworkspace+'&id_object='+id_object,'','dims_popup');
}

function removeTagObject(idtagindex,idmodule,idobject,idrecord,msg) {
	if (idtagindex>0) {
		if (confirm(msg)) {
			cur_idobject=idobject;
			cur_idrecord=idrecord;
			cur_idmodule=idmodule;
			dims_xmlhttprequest_tofunction('admin-light.php','dims_op=removetagobject&idtagindex='+idtagindex,execAfterAddTag);
		}
	}
}

function removeTagObjectTemp(idtag) {
	if (idtag >0) {
		dims_xmlhttprequest_tofunction('admin-light.php','dims_op=removetagobjecttemp&idtag='+idtag,execAfterAddTag);
	}
}


function addTagObject(idtag) {
		if (cur_idobject>=0 && cur_idrecord>=0 && cur_idmodule>=0) {
			dims_xmlhttprequest_tofunction('admin-light.php','dims_op=addtagobject&idtag='+idtag+'&idrecord='+cur_idrecord+'&idobject='+cur_idobject+'&idmodule='+cur_idmodule,execAfterAddTag);
		}
}

function addNewTagObject(tag) {
		if (cur_idobject>=0 && cur_idrecord>=0 && cur_idmodule>=0) {
			dims_xmlhttprequest_tofunction('admin-light.php','dims_op=addnewtagobject&tag='+tag+'&idrecord='+cur_idrecord+'&idobject='+cur_idobject+'&idmodule='+cur_idmodule,execAfterAddTag);
		}
}

function execAfterAddTag() {
		dims_xmlhttprequest_tofunction('admin.php','dims_op=tagblockdisplay&idobject='+cur_idobject+'&idrecord='+cur_idrecord+'&idmodule='+cur_idmodule,execAfterAddTagSuite);
}

function execAfterAddTagSuite(result) {
		dims_getelem('tagblockdisplay').innerHTML=result;
		dims_getelem('searchtag').value="";
		dims_getelem('blockresulttags').innerHTML="";
		dims_getelem('searchtag').focus();
}

function searchTag(idmodule,idobject,idrecord) {
		cur_idobject=idobject;
		cur_idrecord=idrecord;
		cur_idmodule=idmodule;
		clearTimeout(timerdisplayresult);
		timerdisplayresult = setTimeout("searchExecuteTag()", 300);
}

function searchExecuteTag() {
	var elem=dims_getelem('searchtag');
	if (elem!=null) {
		dims_getelem('searchtag').focus();
		dims_xmlhttprequest_todiv('admin.php','dims_op=searchtag&idobject='+cur_idobject+'&idrecord='+cur_idrecord+'&idmodule='+cur_idmodule+'&tag='+elem.value,'','blockresulttags');
	}
}

function displayPreview(idobject,idrecord,idmodule) {
	if (idobject!=null && idobject>0) {
		dims_xmlhttprequest_tofunction('admin-light.php','dims_op=object_properties&idrecord='+idrecord+'&idobject='+idobject+'&idmodule='+idmodule,displayPreview);
	}
	else {
		document.getElementById('dims_popup').innerHTML="";
		dims_showcenteredpopup("",950,600,'dims_popup');
		dims_xmlhttprequest_todiv('admin.php','dims_op=object_detail_properties&preview=all','',"dims_popup");
	}
}

function refreshDesktopRight() {
	dims_xmlhttprequest_todiv('admin-light.php','dims_op=refresh_desktop_right','',"desktop_widget_right");
}

function detectOpenPopup(event) {
	if (!blockclosepopup) {
		var elem=document.getElementById("dims_popup");
	   x=event.clientX;
	   y=event.clientY+window.scrollY;
	   /* test si pas sur l'ascenseur */
	   if( window.innerWidth) w=window.innerWidth;
	   else w=document.body.offsetWidth;

	   if( window.innerHeight) h=window.innerHeight+window.scrollY;
	   else h=document.body.offsetHeight+window.scrollY;

	   if (elem!=null && (x <(w-20)) &&  (y <(h-20))) {
		   if (elem.style.visibility=="visible") {
			   //xbox=elem.style.left.replace("px","");
			   //ybox=elem.style.top.replace("px","");
			   xbox=elem.offsetLeft;
			   ybox=elem.offsetTop;
			   w=elem.offsetWidth;
			   h=elem.offsetHeight;

			   if ((x<xbox || x >(xbox*1+w*1)) || (y<ybox || y>(h*1+ybox*1))) {
				   elem.style.display="none";
				   elem.style.visibility="hidden";
				   cur_idobject=0;
				   cur_idworkspace=0;
				   cur_idmodule = 0;
				   cur_idrecord=0;
			   }
		   }
	   }
	}
}

function detectOpenPopupIE() {
	if (!blockclosepopup) {
		var elem=document.getElementById("dims_popup");
		x=event.clientX;
		y=event.clientY;

		/* test si pas sur l'ascenseur */
		if( window.innerWidth) w=window.innerWidth;
		else w=document.body.offsetWidth;

		if( window.innerHeight) h=window.innerHeight;
		else h=document.body.offsetHeight;

		if (elem!=null && (x <(w-20)) &&  (y <(h-20))) {
			if (elem.style.visibility=="visible" ) {
				xbox=elem.style.left.replace("px","");
				ybox=elem.style.top.replace("px","");

				w=elem.offsetWidth;
				h=elem.offsetHeight;

				if ((x<xbox || x >(xbox*1+w*1)) || (y<ybox || y>(h*1+ybox*1))) {
					elem.style.display="none";
					elem.style.visibility="hidden";
					cur_idobject=0;
					cur_idworkspace=0;
					cur_idmodule = 0;
					cur_idrecord=0;
				}
			}
		}
	}
}

function modifyViewTicket(type) {
    var elem=document.getElementById("contentdesktopticket");
    if (elem!=null) {
        if (type==0) {
            elem.style.display="none";
            elem.style.visibility="hidden";
        }
        else {
            elem.style.display="block";
            elem.style.visibility="visible";
        }
    }
}

function searchUserWorkflow(id_object,id_action) {
	clearTimeout(timerdisplayresult);
	timerdisplayresult = setTimeout("searchUserWorkflowExec("+id_object+","+id_action+")", 200);
}

function searchUserWorkflowExec(id_object,id_action) {
	var nomsearch=document.getElementById("dims_workflow_userfilter"+id_action).value;
	dims_xmlhttprequest_todiv('admin-light.php','dims_op=workflow_search_users&dims_workflow_userfilter='+nomsearch+'&id_object='+id_object+'&id_action='+id_action,'',"div_workflow_search_result"+id_action);
}

function searchUserShare() {
	clearTimeout(timerdisplayresult);
	timerdisplayresult = setTimeout("searchUserShareExec()", 200);
}

function searchUserShareExec() {
	var nomsearch=document.getElementById("dims_shares_userfilter").value;
	dims_xmlhttprequest_todiv('admin-light.php','dims_op=shares_search_users&dims_shares_userfilter='+nomsearch,'',"div_shares_search_result");
}

function switchModuleDisplay(idmodule) {
	var elem=dims_getelem("content"+idmodule);
	var elemtmp;
	var desktopdetail=dims_getelem("desktop_detail_content");
	var desktopright=dims_getelem("desktop_right_content");

	for(i=0;i<listmodules.length;i++) {
		opttxt=dims_getelem("modresult"+listmodules[i]);
		opttxt.className="modresult";

		if (listmodules[i]!=idmodule) {
			elemtmp=dims_getelem("content"+listmodules[i]);
			elemtmp.style.display="none";
			elemtmp.style.visibility="hidden";
		}
	}

	if (elem!=null) {
		if (elem.style.display=="block") {
			elem.style.display="none";
			elem.style.visibility="hidden";
			dims_xmlhttprequest('admin.php','dims_op=reset_currentobject');

			desktopdetail.style.visibility="hidden";
			desktopdetail.style.display="none";
			desktopright.style.visibility="visible";
			desktopright.style.display="block";
		}
		else {
			elem.style.display="block";
			elem.style.visibility="visible";
			opttxt=dims_getelem("modresult"+idmodule);
			opttxt.className="modresultvert";
		}
	}
}

function displayNewServices(event, idService) {
	dims_showpopup('',220,event,'click','dims_popup',0,0);
	dims_xmlhttprequest_todiv('admin.php','action=add_service&id_service='+idService,'','dims_popup');
}

function displayOptions(event,idworkspace,idmodule,idobject,idrecord,decal,displayfavorite) {
	if (cur_idobject!=-1 && (cur_idobject!=idobject || cur_idworkspace!=idworkspace || cur_idmodule != idmodule || cur_idrecord != idrecord)) {
		cur_idobject=idobject;
		cur_idworkspace=idworkspace;
		cur_idmodule = idmodule;
		cur_idrecord = idrecord;
		if (displayfavorite==null) displayfavorite=0;
		dims_showpopup('',160,event,'click','dims_popup',10,-60,decal);
		dims_xmlhttprequest_todiv('admin.php','dims_op=displayObjectOptions&idworkspace='+idworkspace+'&idrecord='+idrecord+'&idobject='+idobject+'&idmodule='+idmodule+"&displayfavorite="+displayfavorite,'','dims_popup');
	}
}
function initDisplayOptions(opt) {
	if (opt==0) {
		cur_idobject=-1;
		// timer to avoid display just after close window
		timerusersportalrefresh = setTimeout("initDisplayOptions(1)", 300);
	}
	else {
		cur_idobject=0;
		clearTimeout(timerusersportalrefresh);
	}
}

function displayOptionsRefresh(idworkspace,idmodule,idobject,idrecord) {
	dims_xmlhttprequest_todiv('admin.php','dims_op=displayObjectOptions&idworkspace='+idworkspace+'&idrecord='+idrecord+'&idobject='+idobject+'&idmodule='+idmodule,'','dims_popup');
}

function changeListProjectDisplay(state) {
	dims_xmlhttprequest('admin.php','dims_op=change_projectlist&state='+state);
}
function viewDesktopDetail(id,type) {
	var desktopdetail=dims_getelem("desktop_detail_content");
	var desktopright=dims_getelem("desktop_right_content");

	if (id==1) {
		desktopdetail.innerHTML="";
		desktopdetail.style.visibility="visible";
		desktopdetail.style.display="block";
		desktopright.style.visibility="hidden";
		desktopright.style.display="none";
	}
	else {
		desktopdetail.style.visibility="hidden";
		desktopdetail.style.display="none";
		desktopright.style.visibility="visible";
		desktopright.style.display="block";
		//if (type==0) timerportalrefresh = setTimeout("searchRecursiveNewsTimer()", 250);
		//else timerportalrefresh = setTimeout("searchRecursiveFavoritesTimer()", 250);
	}
}

function searchRecursiveNewsTimer() {
	clearTimeout(timerportalrefresh);
	searchRecursiveNews();
}

function searchRecursiveFavoritesTimer() {
	clearTimeout(timerportalrefresh);
	searchRecursiveFavorites(typefavorite);
}

function viewPropertiesObject(idobject,idrecord,idmodule,force,auto) {
	cur_idobject=idobject;
	cur_idrecord=idrecord;
	cur_idmodule=idmodule;
	if (force==null) force='';
	if (auto==null) auto=0;
	
	dims_ajaxloader('object_content');

	cur_auto=auto;

	var elem;
	// update img et ligne
	if (old_idmodule!="" && old_idrecord!="" && old_idobject!="") {
		//elem=dims_getelem("obj_"+old_idobject+"_"+old_idrecord+"_"+old_idmodule);
		//if (elem!=null) elem.style.backgroundColor="";

		elem=dims_getelem("img_"+old_idobject+"_"+old_idrecord+"_"+old_idmodule);
		if (elem!=null) elem.src="./img/arrow-right.gif";
	}

	//elem=dims_getelem("obj_"+idobject+"_"+idrecord+"_"+idmodule);
	//if (elem!=null) elem.style.backgroundColor="#CADDFF";
	elem=dims_getelem("img_"+idobject+"_"+idrecord+"_"+idmodule);
	if (elem!=null) elem.src="./img/arrow-green-right.gif";

	old_idobject=idobject;
	old_idrecord=idrecord;
	old_idmodule=idmodule;

	var desktopdetail=dims_getelem("object_content");
	desktopdetail.style.visibility="visible";
	desktopdetail.style.display="block";

	var desktopright=dims_getelem("desktop_right_content");
	if (desktopright!=null) {
		desktopright.style.visibility="hidden";
		desktopright.style.display="none";
	}

	dims_xmlhttprequest_tofunction('admin-light.php','dims_op=object_properties&idrecord='+idrecord+'&idobject='+idobject+'&idmodule='+idmodule+'&auto='+auto,execviewPropertiesObject,force);
}

function execviewPropertiesObject(result,force) {
	dims_xmlhttprequest_todiv('admin-light.php','dims_op=refreshDesktop&block_id=3&type=object&desktopobjectheight='+desktopheightobject+'&'+force+'&auto=1',"||",'object_onglet','object_content');
	if (!cur_auto) dims_xmlhttprequest_todiv('admin-light.php','dims_op=refreshMenuSearch',"",'searchBar_obj_container');

	/*dims_getelem("object_content").innerHTML=result;
	var bottomAccordion = new accordion('vertical_container');

	var verticalAccordions = $$('.accordion_toggle');
	verticalAccordions.each(function(accordion){
		$(accordion.next(0)).setStyle({height: '0px'});
	});
	bottomAccordion.activate($$('#vertical_container .accordion_toggle')[0]);

	if (activePreview) {
		// on lance la previsualisation du document
		dims_getelem("desktop_detail_object_content").innerHTML="<table width=\"100%\" height=\"400\"><tr><td valign=\"center\" align=\"center\"><img src=\"./img/loading.gif\" alt=\"\"></td></tr></table>";
		dims_xmlhttprequest_todiv('admin.php','dims_op=object_detail_properties','',"desktop_detail_object_content");
	}*/
}

function viewPropertiesTicket(idticket,idobject,idrecord,idmodule) {
	// update ticket status
	dims_xmlhttprequest('admin.php','op=ticket_open&ticket_id='+idticket);

	var desktopdetail=dims_getelem("desktop_detail_content");
	var desktopright=dims_getelem("desktop_right_content");

	desktopdetail.style.visibility="visible";
	desktopdetail.style.display="block";

	if (desktopright!=null) {
		desktopright.style.visibility="hidden";
		desktopright.style.display="none";
	}

	if (idobject>0 && idrecord>0 && idmodule>0) {
		dims_xmlhttprequest_tofunction('admin-light.php','dims_op=ticket_properties&idticket='+idticket,execviewPropertiesTicket,idticket);
	}
	else
		dims_xmlhttprequest_tofunction('admin-light.php','dims_op=ticket_properties&idticket='+idticket,execviewPropertiesTicketLight,idticket);
}

function execviewPropertiesTicket(result,idticket) {
	ticketsRefresh();
	dims_getelem("desktop_detail_content").innerHTML=result;
	var bottomAccordion = new accordion('vertical_container');

	var verticalAccordions = $$('.accordion_toggle');
	verticalAccordions.each(function(accordion){
		$(accordion.next(0)).setStyle({height: '0px'});
	});
	bottomAccordion.activate($$('#vertical_container .accordion_toggle')[0]);

	// on lance la previsualisation du document
	var elem=dims_getelem("desktop_detail_object_content");
	if (elem!=null) elem.innerHTML="<table width=\"100%\" height=\"400\"><tr><td valign=\"center\" align=\"center\"><img src=\"./img/loading.gif\" alt=\"\"></td></tr></table>";
	dims_xmlhttprequest_todiv('admin.php','dims_op=object_detail_properties','',"desktop_detail_object_content");
}

function closeObject() {
	viewDesktopDetail(0);
	dims_xmlhttprequest('admin-light.php','dims_op=object_close');
}

function execCloseObject() {
	window.location.reload();
}

function reloadWindow() {
	window.location.reload();
}

function eraseTickets() {
	dims_xmlhttprequest_tofunction('admin-light.php','dims_op=eraseticket',updateTickets);
}

function eraseTicketsSent(){
        dims_xmlhttprequest_tofunction('admin-light.php','dims_op=eraseticketsent',updateTickets);
}

function deleteSelTickets(nb) {
	var lst="";
	for (i = 0; i < nb; i++) {
		if (document.getElementById("selticket"+i).checked) {
			if (lst=="") lst=document.getElementById("selticket"+i).value;
			else lst+=","+document.getElementById("selticket"+i).value;
		}
	}
	if (lst!="") dims_xmlhttprequest_tofunction('admin-light.php','dims_op=deleteselticket&lst='+lst,updateTickets);
}

function deleteSelSentTickets(nb) {
	var lst="";
	for (i = 0; i < nb; i++) {
		if (document.getElementById("selticket"+i).checked) {
			if (lst=="") lst=document.getElementById("selticket"+i).value;
			else lst+=","+document.getElementById("selticket"+i).value;
		}
	}
	if (lst!="") dims_xmlhttprequest_tofunction('admin-light.php','dims_op=deleteselsentticket&lst='+lst,updateTickets);
}

function deleteSelSentTicketOpen(id){
        if(confirm('?tes-vous certain de vouloir supprimer ce ticket ?') && (id != "")){
            dims_xmlhttprequest_tofunction('admin-light.php','dims_op=deleteselsentticket&lst='+lst,updateTickets);
        }
}

function updateTickets() {
	ticketsRefresh();
}

function execviewPropertiesTicketLight(result) {
	ticketsRefresh();
	dims_getelem("desktop_detail_content").innerHTML=result;
	var bottomAccordion = new accordion('vertical_container');

	var verticalAccordions = $$('.accordion_toggle');
	verticalAccordions.each(function(accordion){
		$(accordion.next(0)).setStyle({height: '0px'});
	});
	bottomAccordion.activate($$('#vertical_container .accordion_toggle')[0]);
}

function searchUserPlanning() {
	clearTimeout(timerdisplayresult);
	timerdisplayresult = setTimeout("searchUserPlanningExec()", 300);
}

function searchUserPlanningExec() {
	var nomsearch=document.getElementById("nomsearchplanning").value;
	dims_xmlhttprequest_todiv('admin.php','op=search_contact_planning&nomsearch='+nomsearch,'',"lst_planninguser");
}

function updateUserFromSelectedPlanning(op,id_user) {
	dims_xmlhttprequest_tofunction('admin-light.php','op='+op+"&id_user="+id_user,refresh_planning);
}

function ticketOpenResponse(idticket) {
	timerusersportalrefresh = setTimeout("execOpenResponse("+idticket+")", 500);
}

function execOpenResponse(idticket) {
	clearTimeout(timerdisplayresult);
	dims_xmlhttprequest_todiv('admin.php','op=ticket_replyto&ticket_id='+idticket,'',"ticket_response_"+idticket);
}

function ticketOpenResponses(idticket) {
	timerusersportalrefresh = setTimeout("execOpenResponses("+idticket+")", 500);
}

function execOpenResponses(idticket) {
	clearTimeout(timerdisplayresult);
	dims_xmlhttprequest_todiv('admin.php','op=ticket_open_responses&ticket_id='+idticket,'',"ticket_responses_"+idticket);
}

function ticketsRefresh(page) {
	if (page==null) dims_xmlhttprequest_todiv('admin-light.php','dims_op=tickets_refresh','','contentdesktopticket');
	else dims_xmlhttprequest_todiv('admin-light.php','dims_op=tickets_refresh&page='+page,'','contentdesktopticket');
}

function checkAllTickets(nbfiles) {
	for (i = 0; i < nbfiles; i++)
		document.getElementById("selticket"+i).checked = true;
}

function uncheckAllTickets(nbfiles) {
	for (i = 0; i < nbfiles; i++)
		document.getElementById("selticket"+i).checked = false;
}

function refreshDesktopPage(mod,op,page) {
	//dims_xmlhttprequest_todiv('admin-light.php','dims_op='+op+'&moduleid='+mod+'&page='+page,'||','ressearch'+mod,'content'+mod);
	dims_xmlhttprequest_tofunction('admin-light.php','dims_op='+op+'&moduleid='+mod+'&page='+page,refreshDesktopPageSuite,mod);
}

function refreshDesktopPageSuite(result,mod) {
if (result!=null) tabxmlvalue=result.split("||");
	var elem=dims_getelem('ressearch'+mod);
	var elemcontent=dims_getelem('content'+mod);

	if (elem!=null) elem.innerHTML= "<a href=\"javascript:void(0);\" onclick=\"javascript:switchModuleDisplay("+mod+");\">"+tabxmlvalue[0]+"</a>";
	if (elemcontent!=null) elemcontent.innerHTML= tabxmlvalue[1];
}

function refreshFavorites(idfav,iduser,idmodule,idworkspace,idobject,idrecord,value,iduserfrom,divcontent,activemode,mustreload) {
	if (activemode==1) {
		dims_xmlhttprequest_todiv('admin-light.php','dims_op=updatefavoriteobject&idfav='+idfav+'&iduserfrom='+iduserfrom+'&iduser='+iduser+'&idmodule='+idmodule+'&idworkspace='+idworkspace+'&idobject='+idobject+'&idrecord='+idrecord+'&value='+value,'',divcontent);
	}
	else {
		dims_xmlhttprequest('admin-light.php','dims_op=updatefavoriteobject&idfav='+idfav+'&iduserfrom='+iduserfrom+'&iduser='+iduser+'&idmodule='+idmodule+'&idworkspace='+idworkspace+'&idobject='+idobject+'&idrecord='+idrecord+'&value='+value+'&passivemode=1');
		if (mustreload==null) mustreload=false;
		if (mustreload) window.location.reload();
	}
}

function refreshDesktop(type,action,op,divcontent) {
	dims_xmlhttprequest_todiv('admin.php','dims_op=refreshdesktop&type='+type+'&action='+action+'&op='+op,'',divcontent);
}

function refreshTimerDesktop(type,action,op,divcontent) {
	timerusersportalrefresh = setTimeout("execrefreshDesktop('"+type+"','"+action+"','"+op+"','"+divcontent+"')", 30000);
}

function execrefreshDesktop(type,action,op,divcontent) {
	clearTimeout(timerusersportalrefresh);
	dims_xmlhttprequest_todiv('admin.php','dims_op=refreshdesktop&type='+type+'&action='+action+'&op='+op,'',divcontent);
	refreshTimerDesktop(type,action,op,divcontent);
}

function switchOption(event,cmd,id) {
	var opttxt=dims_getelem("optionstext"+id);
	var optcmd=dims_getelem("optionscmd"+id);

	for(i=0;i<listmodules.length;i++) {
		opttxt=dims_getelem("optionstext"+listmodules[i]);
		optcmd=dims_getelem("optionscmd"+listmodules[i]);
		opttxt.style.visibility="visible";
		opttxt.style.display="block";
		optcmd.style.visibility="hidden";
		optcmd.style.display="none";
	}
	var opttxt=dims_getelem("optionstext"+id);
	var optcmd=dims_getelem("optionscmd"+id);

	opttxt.style.visibility="hidden";
	opttxt.style.display="none";
	optcmd.style.visibility="visible";
	optcmd.style.display="block";
}

function displayModuleInformation(event,idmodule) {
	eventcour=event;
	dims_showpopup('',400,eventcour);
	dims_xmlhttprequest_todiv('admin.php','dims_op=displaymodinfo&idmodule='+idmodule,'','dims_popup');
}

function displayAddFiles(event) {
	dims_showcenteredpopup("",700,500,'dims_popup');
	dims_xmlhttprequest_todiv('admin.php','dims_op=doc_uploadform_file','','dims_popup');
}

function displayMapWorkspaces(event) {
	var eventcour=event;
	var dims_popup=document.getElementById('dims_popup');
	var x=200;
	var y=50;

	dims_popup.style.visibility='visible';
	dims_popup.style.display='block';
	dims_popup.style.position="absolute";

	if( window.innerWidth) {
		dims_popup.style.width=(window.innerWidth *4)/ 5+"px";
		x = (window.innerWidth / 2) - (dims_popup.offsetWidth / 2);
  		y = 60; //(window.offsetHeight / 2) - (dims_popup.offsetHeight / 2);
	}
  	else {
  		dims_popup.style.width=(document.body.offsetWidth *4)/ 5+"px";
		dims_popup.style.height=60; //(document.body.offsetHeight *4)/ 5+"px";
		x = (document.body.offsetWidth / 2) - (dims_popup.offsetWidth / 2);
  		//y = (document.body.offsetHeight / 2) - (dims_popup.offsetHeight / 2);
  		y = 60;
  	}

  	dims_popup.style.top = y+"px";
  	dims_popup.style.left = x+"px";
  	dims_popup.style.display = "block";

	dims_xmlhttprequest_todiv('admin.php','dims_op=view_workspace','','dims_popup');

}

function displayCodeOfConduct() {

	var dims_popup=document.getElementById('dims_popup');
	var x=200;
	var y=50;

	dims_popup.style.visibility='visible';
	dims_popup.style.display='block';
	dims_popup.style.position="absolute";

	if( window.innerWidth) {
		dims_popup.style.width=(window.innerWidth *4)/ 5+"px";
		x = (window.innerWidth / 2) - (dims_popup.offsetWidth / 2);
  		y = 60; //(window.offsetHeight / 2) - (dims_popup.offsetHeight / 2);
	}
  	else {
  		dims_popup.style.width=(document.body.offsetWidth *4)/ 5+"px";
		dims_popup.style.height=60; //(document.body.offsetHeight *4)/ 5+"px";
		x = (document.body.offsetWidth / 2) - (dims_popup.offsetWidth / 2);
  		//y = (document.body.offsetHeight / 2) - (dims_popup.offsetHeight / 2);
  		y = 60;
  	}

  	dims_popup.style.top = y+"px";
  	dims_popup.style.left = x+"px";
  	dims_popup.style.display = "block";

	dims_xmlhttprequest_todiv('admin.php','dims_op=view_code_of_conduct','','dims_popup');

}

function dislayResultOverTimer(event,idmodule,idobject,idrecord) {
	eventcour=event;
	dims_showpopup('',400,eventcour);
	dims_xmlhttprequest_todiv('admin.php','dims_op=displaysearchresult&idmodule='+idmodule+'&idobject='+idobject+'&idrecord='+idrecord,'','dims_popup');
}

function dislayContentOverTimer(event,idmodule,idobject,idrecord) {
	eventcour=event;
	dims_showpopup('',600,eventcour,'click',"dims_popup2");
	dims_xmlhttprequest_todiv('admin.php','dims_op=displaycontent&moduleid='+idmodule+'&idobject='+idobject+'&idrecord='+idrecord,'','dims_popup2');
}

function displaySharesModules(event,idobject,idrecord,idmodule) {
	dims_showpopup('',400,event);
	dims_xmlhttprequest_todiv('admin.php','dims_op=shares_viewmodule&idmodule='+idmodule+'&idobject='+idobject+'&idrecord='+idrecord,'','dims_popup');
}

function saveSharesModules(idobject,idrecord,idmodule) {
	dims_xmlhttprequest_tofunction('admin-light.php','dims_op=shares_savemodule&idmodule='+idmodule+'&idobject='+idobject+'&idrecord='+idrecord,saveSharesModulesSuite,idrecord);
}

function saveSharesModulesSuite(result,idmodule) {
	dims_getelem('dims_popup').style.visibility='hidden';
	refreshSharesModules(idmodule);
}

function refreshSharesModules(idmodule) {
	dims_xmlhttprequest_todiv('admin.php','dims_op=shares_refreshmodule&idmodule='+idmodule,'||','adminmod_'+idmodule,'adminviewmod_'+idmodule);
}

function displayDomainInfo(event,typeaccess,iddomain) {
	dims_showpopup('',460,event,'click');
	dims_xmlhttprequest_todiv('admin.php','dims_op=domains_viewdomain&iddomain='+iddomain+'&typeaccess='+typeaccess,'','dims_popup');
}

function displayTemplateInfo(event,idworkspace) {
	dims_showpopup('',400,event,'click');
	dims_xmlhttprequest_todiv('admin.php','dims_op=templates_view&idworkspace='+idworkspace,'','dims_popup');
}

function dislayResultOver(idmodule,idobject,idrecord) {
	dims_showpopup('',400,eventcour,'click');
	dims_xmlhttprequest_todiv('admin.php','dims_op=displaysearchresult&idmodule='+idmodule+'&idobject='+idobject+'&idrecord='+idrecord,'','dims_popup');
}

function undodisplayResult() {
	clearTimeout(timerdisplayresult);
}

function switchsearch() {
	var elem=dims_getelem('block_search');
	var state=0;

	if (elem!=null) {
		if(elem.style.display!='block') {
			elem.style.display='block';
			elem.style.visibility='visible';
			dims_getelem('wordsearch').focus();
			state=1;
		}
		else {
			elem.style.display='none';
			elem.style.visibility='hidden';
			state=0;
		}
		dims_xmlhttprequest('admin.php','dims_op=active_search&state='+state);

		//if (state==0) searchNews();
		//else searchEmpty();
	}
	//else {
	//	document.location="admin.php?dims_mainmenu=0&dims_desktop=portal&displaysearch=1";
	//}
}

function changetagsearch() {
	var elem=dims_getelem('checktagsearch');
	var state=0;

	if (elem!=null) {
		if(elem.checked) state=1;
		else {
			dims_getelem('resulttags').innerHTML="";
			state=0;
		}
		dims_getelem('wordsearch').focus();
		dims_xmlhttprequest('admin.php','dims_op=checktagsearch&state='+state);
	}

}

/******************************************************************************************************/
/*      Function clipboard                                                                            */
/******************************************************************************************************/
var currentselection="";
var elemselection;
var elemsrc;

function detectSelectedText(event) {
	/*
	if (document.selection!=null && document.selection.createRange().text)
		sel = document.selection.createRange().text;
	else if (window.getSelection())
		sel = window.getSelection();

	event= (!event) ? window.event : event;
	// on peut d�tecter le type de champ si c'est un input ou textarea
	var src= (event) ? event.target : event.srcElement;

	if((src.tagName=="INPUT" && src.type=="text") || src.type=="textarea") {
		elemsrc=src;
		elemselection=src;

	}

	if (sel != "") {
		// on appelle la barre de proposition de copie
		if (currentselection!=sel) {
			currentselection=""+sel;
			dims_showpopup('',90,event,'click','dims_clipboard');
			dims_xmlhttprequest_todiv('admin.php','dims_op=clipboard_showcmd','','dims_clipboard');
		}

	}
	else {
		if((src.tagName=="INPUT" && src.type=="text") || src.type=="textarea") {

			dims_showpopup('',90,event,'click','dims_clipboard',0,-55);
			dims_xmlhttprequest_todiv('admin.php','dims_op=clipboard_showcmdget','','dims_clipboard');
		}
	}
	*/
}

function clipboard_getallSuite(result) {
	if((elemsrc.tagName=="INPUT" && elemsrc.type=="text") || elemsrc.type=="textarea") {
		elemselection.value=result;
	}
	dims_hidepopup('dims_clipboard');
	elemselection.focus();
}

function clipboard_copy(event) {
	if (document.selection!=null && document.selection.createRange().text)
		sel = document.selection.createRange().text;
	else if (window.getSelection())
		sel = window.getSelection();

	if (sel != "") {
		dims_xmlhttprequest('admin.php','dims_op=clipboard_add&paste='+window.getSelection());
		dims_hidepopup('dims_clipboard');
		//dims_showpopup('',400,event,'click','dims_clipboard');
		//dims_xmlhttprequest_todiv('admin.php','dims_op=clipboard_show','','dims_clipboard');
	}
	else
		alert("Aucune selection !");
}

function clipboard_copyto(id_element) {
	var elem = dims_getelem(id_element);
	elem.select();
}

function clipboard_get(element) {
	dims_xmlhttprequest_tofunction('admin-light.php','dims_op=clipboard_pasteall',clipboard_getallSuite);
}

function clipboard_delete(id) {
	dims_xmlhttprequest_todiv('admin.php','dims_op=clipboard_delete&id='+id, '' ,'dims_clipboard');
}

function dims_show_clipboard(event) {
	dims_showpopup('',400,event,'click','dims_clipboard');
	dims_xmlhttprequest_todiv('admin.php','dims_op=clipboard_show','','dims_clipboard');
}

function zoomOuputBlock(mod) {
	var contentzoom=$("zoomContent");
	contentzoom.innerHTML="";
	contentzoom.style.visibility="hidden";
	contentzoom.style.display="none";

	var elem = $("dimsminimize");
	elem.style.display="none";
	elem.style.visibility="hidden";

	elem = $("dimsblock");
	elem.style.display="block";
	elem.style.visibility="visible";
}

function zoomBlock(mod) {
	var elem = $("dimsblock");
	elem.style.display="none";
	elem.style.visibility="hidden";

	elem = $("dimsminimize");
	elem.style.display="block";
	elem.style.visibility="visible";

	viewActiveZoom(mod);
}


function viewActiveZoom(mod) {
	var contentzoom=$("zoomContent");

	contentzoom.style.visibility="visible";
	contentzoom.style.display="block";
	var elem=$("block-"+mod);
	var ch=elem.innerHTML;
	ch=ch.replace("content"+mod,"zoomcontent"+mod);
	ch=ch.replace("moduleContent0","moduleContentZoom");
	ch=ch.replace("moduleContent1","moduleContentZoom");
	ch=ch.replace("closestate","closestatehide");
	ch=ch.replace("zoomBlock","zoomOuputBlock");
	ch=ch.replace("zoom.png","zoomouput.png");

	contentzoom.innerHTML=ch.replace("search_explorer_main","search_explorer_mainzoom");
}

function updateValidate(mod,refresh) {
    if (refresh==null) refresh=false;
	//var elem=$("ressearch"+mod);
	//elem.innerHTML="<font class=\"fontgray\">-</font>";
    if (refresh)
        dims_xmlhttprequest_tofunction('admin-light.php',"dims_op=updatevalidate&moduleid="+mod,updateValidateSuite);
	else
        dims_xmlhttprequest("admin-light.php","dims_op=updatevalidate&moduleid="+mod);
}

function updateValidateSuite() {
    document.location.reload();
}

function updateAllValidate() {
	dims_xmlhttprequest("admin-light.php","dims_op=updateallvalidate");
}

function updateState(mod,state) {
	elemstate=$('state'+mod);
	var elemdiv=$("content"+mod);
	var elemimg=$("bkimg"+mod);
	var h=0;

	var src="";

	if (elemstate.innerHTML=="0") {
		h="165px";
		state=1;
		elemstate.innerHTML="1";
		src="./img/minimize.gif";

		if (statesearch=="search") {
			searchWordSuite("",mod);
		}
		else {
			dims_xmlhttprequest_todiv('admin-light.php','dims_op=searchnews&moduleid='+mod,'||','ressearch'+mod,'content'+mod);
		}
	}
	else {
		h="0px";
		state=0;
		elemstate.innerHTML="0";
		src="./img/maximize.gif";
	}

	dims_xmlhttprequest("admin-light.php","dims_op=updatestate&module="+mod+"&state="+state);
	elemdiv.style.height=h;
	elemimg.src=src;
}

function addTags(event,data) {
 	dims_showpopup('',350, event);
	timerportalrefresh = setTimeout("execaddTags('"+data+"')", 100);
}

function execaddTags(data) {
	clearTimeout(timerportalrefresh);
	dims_xmlhttprequest_todiv("admin-light.php",data,'',"dims_popup");
}

function refreshAgenda(moduleid,month,year) {
	dims_xmlhttprequest_todiv('admin-light.php','dims_op=searchnews&moduleid='+moduleid+'&agenda_month_block='+month+'&agenda_year_block='+year,'||','ressearch'+moduleid,'content'+moduleid);
}


// accordion.js v2.0
//
// Copyright (c) 2007 stickmanlabs
// Author: Kevin P Miller | http://www.stickmanlabs.com
//
// Accordion is freely distributable under the terms of an MIT-style license.
if (typeof Effect == 'undefined')
	throw("accordion.js requires including script.aculo.us' effects.js library!");

var accordion = Class.create();
accordion.prototype = {

	//
	//  Setup the Variables
	//
	showAccordion : null,
	currentAccordion : null,
	duration : null,
	effects : [],
	animating : false,
	AlreadyActivated: [], //Added by Trey
	//
	//  Initialize the accordions
	//
	initialize: function(container, options) {
	  if (!$(container)) {
	    throw(container+" doesn't exist!");
	    return false;
	  }

		this.options = Object.extend({
			resizeSpeed : 8,
			classNames : {
				toggle : 'accordion_toggle',
				toggleActive : 'accordion_toggle_active',
				content : 'accordion_content'
			},
			defaultSize : {
				height : null,
				width : null
			},
			direction : 'vertical',
			onEvent : 'click',
			onActivate: null, //Added by Trey:  CallBack Function called when Tab is activated, sends elemet.
			RepeatActivate: {} //Added by Trey
		}, options || {});

		this.duration = ((11-this.options.resizeSpeed)*0.15);
		this.AlreadyActivated =[]; //Added by Trey
		var accordions = $$('#'+container+' .'+this.options.classNames.toggle);
		accordions.each(function(accordion) {
			Event.observe(accordion, this.options.onEvent, this.activate.bind(this, accordion), false);
			if (this.options.onEvent == 'click') {
			  accordion.onclick = function() {return false;};
			}

			if (this.options.direction == 'horizontal') {
				var options = {width: '0px'};
			} else {
				var options = {height: '0px'};
			}
			//options.merge({display: 'none'});
			Object.extend(options, {display: 'none'});

			this.currentAccordion = $(accordion.next(0)).setStyle(options);
		}.bind(this));
	},

	//
	//  Activate an accordion
	//
	activate : function(accordion) {
		if (this.animating) {
			return false;
		}

		this.effects = [];

		this.currentAccordion = $(accordion.next(0));
		this.currentAccordion.setStyle({
			display: 'block'
		});

		this.currentAccordion.previous(0).addClassName(this.options.classNames.toggleActive);

		if (this.options.direction == 'horizontal') {
			this.scaling = {
				scaleX: true,
				scaleY: false
			};
		} else {
			this.scaling = {
				scaleX: false,
				scaleY: true
			};
		}

		if (this.currentAccordion == this.showAccordion) {
		  this.deactivate();
		} else {

//This was added by Trey Aughenbaugh
//Allows calling a function before activating a new Menu
		var bolCall = true;
		var elementid = $(this.currentAccordion).id
		var AA = this.AlreadyActivated.indexOf(elementid);
		var RA = this.options.RepeatActivate[elementid];
		if (RA != undefined)
		{
			if ( AA != -1 )
			{
				if ( RA != undefined )
				bolCall = RA;
			}
			else
			{
				this.AlreadyActivated.push(elementid);
			}
		}

		if (this.options.onActivate && bolCall)
			this.options.onActivate(this.currentAccordion) ;

//My Code Updates End Here.......................Orig Call Below.
  		  this._handleAccordion();
		}
	},
	//
	// Deactivate an active accordion
	//
	deactivate : function() {
		var options = {
		  duration: this.duration,
			scaleContent: false,
			transition: Effect.Transitions.sinoidal,
			queue: {
				position: 'end',
				scope: 'accordionAnimation'
			},
			scaleMode: {
				originalHeight: this.options.defaultSize.height ? this.options.defaultSize.height : this.currentAccordion.scrollHeight,
				originalWidth: this.options.defaultSize.width ? this.options.defaultSize.width : this.currentAccordion.scrollWidth
			},
			afterFinish: function() {
				this.showAccordion.setStyle({
					height: '0px',
					display: 'none'
				});
				this.showAccordion = null;
				this.animating = false;
			}.bind(this)
		};
    //options.merge(this.scaling);
	Object.extend(options, this.scaling);

    this.showAccordion.previous(0).removeClassName(this.options.classNames.toggleActive);

		new Effect.Scale(this.showAccordion, 0, options);
	},

  //
  // Handle the open/close actions of the accordion
  //
	_handleAccordion : function() {
		var options = {
			sync: true,
			scaleFrom: 0,
			scaleContent: false,
			transition: Effect.Transitions.sinoidal,
			scaleMode: {
				originalHeight: this.options.defaultSize.height ? this.options.defaultSize.height : this.currentAccordion.scrollHeight,
				originalWidth: this.options.defaultSize.width ? this.options.defaultSize.width : this.currentAccordion.scrollWidth
			}
		};
		//options.merge(this.scaling);
		Object.extend(options, this.scaling);

		this.effects.push(
			new Effect.Scale(this.currentAccordion, 100, options)
		);

		if (this.showAccordion) {
			this.showAccordion.previous(0).removeClassName(this.options.classNames.toggleActive);

			options = {
				sync: true,
				scaleContent: false,
				transition: Effect.Transitions.sinoidal
			};
			//options.merge(this.scaling);
			Object.extend(options, this.scaling);

			this.effects.push(
				new Effect.Scale(this.showAccordion, 0, options)
			);
		}

    new Effect.Parallel(this.effects, {
			duration: this.duration,
			queue: {
				position: 'end',
				scope: 'accordionAnimation'
			},
			beforeStart: function() {
				this.animating = true;
			}.bind(this),
			afterFinish: function() {
				if (this.showAccordion) {
					this.showAccordion.setStyle({
						display: 'none'
					});
				}
				$(this.currentAccordion).setStyle({
				  height: 'auto'
				});
				this.showAccordion = this.currentAccordion;
				this.animating = false;
			}.bind(this)
		});
	}
}
// Classe onglet
function onglet (container, onglet, containerAjax, initCallback, initParametres, ongletSelected, useHash) {
	if(!ongletSelected){
		ongletSelected	= 1;
	}

	var local 				= this;

	this.onglet 			= onglet;
	this.onglets   			= $(onglet).childElements();
	this.ongletSelected 	= ongletSelected;
	this.nbOnglets 			= 1;
	this.containerAjax 		= containerAjax;

	this.initCallback 		= initCallback;
	this.initParametres 	= initParametres;

	this.special			= new Array();
	this.specialOpen 		= new Array();

	this.useHash 			= useHash;

	// __CONSTRUCT permettant de compter le nombre d'onglets total et de leur assigner la classe qui va bien
	this.init			= function () {
		this.nbOnglets 	= this.onglets.length;

		for (i=1; i <= this.nbOnglets; i++) {
			$(this.onglet+i+'_label').className 	= (i == this.ongletSelected) ? 'onglet_actif' : 'onglet_inactif';
			$(this.onglet+i+'_before').className 	= (i == this.ongletSelected) ? 'onglet_actif_before' : 'onglet_inactif_before';
			$(this.onglet+i+'_after').className 	= (i == this.ongletSelected) ? 'onglet_actif_after' : 'onglet_inactif_after';
		}

		if (typeof(this.initCallback) == 'function') {
			this.initCallback(this.initParametres);
		}
	};

	// On lance le _CONSTRUCT manuellement afin d'emuler le comportement normal de POO
	local.init();

	// Methode placant l'onglet ID (ou tous les onglets si !ID) en inactif
	this.hide 			= function (id) {
		// Si id n'est pas defini, on met tous les onglets en inactif sinon, seulement celui choisi
		for (i=1; i <= this.nbOnglets; i++) {
			if (!id) {
				$(this.onglet+i+'_label').className 	= 'onglet_inactif';
				$(this.onglet+i+'_before').className 	= 'onglet_inactif_before';
				$(this.onglet+i+'_after').className 	= 'onglet_inactif_after';
			} else if (id != '' && i == id) {
				$(this.onglet+i+'_label').className 	= 'onglet_inactif';
				$(this.onglet+i+'_before').className 	= 'onglet_inactif_before';
				$(this.onglet+i+'_after').className 	= 'onglet_inactif_after';
			}
		}
	};

	// Methode placant l'onglet ID en actif et appelant l'INSTANCE via Ajax
	this.show 			= function (id, callback, parametres) {
		this.ongletSelected = id;

		for (i=1; i <= this.nbOnglets; i++) {
			$(this.onglet+i+'_label').className 	= (i == id) ? 'onglet_actif' : 'onglet_inactif';
			$(this.onglet+i+'_before').className 	= (i == id) ? 'onglet_actif_before' : 'onglet_inactif_before';
			$(this.onglet+i+'_after').className 	= (i == id) ? 'onglet_actif_after' : 'onglet_inactif_after';
		}

		if (typeof(callback) == 'function') {
			callback(parametres);
		}
		/*
		if (this.useHash) {
			window.location.href 	= '#'+id+'/'+parametres;
			lastHash 				= '#'+id+'/'+parametres;
		}
		*/
	};

	// Methode permettant la mise a jour d'un element
	this.update 		= function (id, callback, parametres, titre) {
		// Actions de l'onglet
		$(this.onglet+id).onclick 				= function () {local.show(id, callback, parametres);};
		$(this.onglet+id+'_label').innerHTML 	= titre;

		// Et on affiche l'onglet en question
		local.show(id, callback, parametres);
	};

	// Methode permettant d'ajouter un onglet dans le CONTAINERONGLET avec un TITRE et appelant l'INSTANCE via Ajax
	this.add			= function (titre, callback, parametres) {
		// Cachage de tous les onglets presents
		local.hide();

		if(in_array(titre, this.special)) {
			if (!array_key_exists(titre, this.specialOpen)) {
				this.nbOnglets++;
				this.specialOpen[titre] 	= this.nbOnglets;
				var valid 					= true;
			} else {
				local.update(this.specialOpen[titre], callback, parametres, titre);
				var valid 					= false;
			}
		} else {
			var valid 					= true;
		}

		if (valid == true) {
			var temp_nbOnglets 			= this.nbOnglets;

			// Parametrage du li
			var newLi 					= document.createElement('li');
			newLi.onclick 				= function () {local.show(temp_nbOnglets, callback, parametres);};
			newLi.setAttribute('id', this.onglet+this.nbOnglets);

			// Parametrage du nouvel onglet
			var newOnglet     			= document.createElement('span');
			newOnglet.className 		= 'onglet_actif';
			newOnglet.innerHTML 		= titre;
			newOnglet.setAttribute('id', this.onglet+this.nbOnglets+'_label');

			// Arrondi gauche
			var newOngletBefore 		= document.createElement('span');
			newOngletBefore.className 	= 'onglet_actif_before';
			newOngletBefore.setAttribute('id', this.onglet+this.nbOnglets+'_before');

			// Arrondi droite
			var newOngletAfter	 		= document.createElement('span');
			newOngletAfter.className 	= 'onglet_actif_after';
			newOngletAfter.setAttribute('id', this.onglet+this.nbOnglets+'_after');

			// Creation du nouvel onglet
			$(this.onglet).appendChild(newLi);
			newLi.appendChild(newOngletBefore);
			newLi.appendChild(newOnglet);
			newLi.appendChild(newOngletAfter);

			// On affiche l'onglet
			local.show(this.nbOnglets, callback, parametres);
		}
	};
}

var Loader = Class.create({
	initialize: function () {
		this.script 	= $H();
		this.loader 	= false;

	},

	add: function (script) {
		this.script.set(this.script.size(), script);
				
	},

	load: function () {
		var local 		= this;

		if (!this.loader && !document.loaded) {
			this.loader 	= setInterval(function () {local.load();}, 100);
		}

		if (document.loaded){
			clearInterval(this.loader);

			this.script.toJSON().evalJSON();

			this.script.each(function (script) {
				if (typeof(script.value) === "function") {
					script.value();
				}
			});
		}
	}
});

var Popup = Class.create({
	initialize: function (name, file, width, minHeight, top, title, closable, draggable) {
		var local 		= this;

		this.name 		= name;
		this.file 		= file;
		this.closable 	= closable;
		this.draggable 	= draggable;
		this.width 		= width;
		this.top 		= top;
		this.title 		= title;
		this.interval 	= setInterval(function(){local.set();}, 100);
		this.blackboard = 'blackboard'+this.name;
		this.larg 		= 0;
		this.haut 		= 0;
		this.minHeight 	= minHeight;

		var detect 		= navigator.userAgent.toLowerCase();
		this.ie 		= detect.indexOf('msie') + 1;
	},

	is_numeric: function (mixed_var) {
		return (typeof(mixed_var) === 'number' || typeof(mixed_var) === 'string') && mixed_var !== '' && !isNaN(mixed_var);
	},

	set: function () {
		var local 		= this;

		if (document.loaded) {
			clearInterval(this.interval);

			if ($(this.blackboard) == null) {
				var obj = document.createElement('div');

				obj.setAttribute('id', this.blackboard);
				document.body.appendChild(obj);
			}

			$(this.blackboard).addClassName('blackboard');
			$(this.blackboard).onclick 				= function () {
				local.hide();
			};

			if ($(this.name) == null) {
				var box = document.createElement('div');

				box.setAttribute('id', this.name);
				document.body.appendChild(box);
			}

			$(this.name).addClassName('popup');
			$(this.name).style.width 				= this.width + 'px';
			$(this.name).style.top 					= this.top + 'px';

			var title = document.createElement('div');

			title.setAttribute('id', this.name+'_title');
			$(this.name).appendChild(title);
			$(this.name+'_title').addClassName('title');
			$(this.name+'_title').innerHTML = this.title;

			if (this.draggable) {
				var move = document.createElement('span');

				move.setAttribute('id', this.name+'_move');
				$(this.name).appendChild(move);
				$(this.name+'_move').addClassName('move');
				$(this.name+'_move').title = "D�placer";

				new Draggable(this.name, {handle: this.name+'_move'});

				$(this.name+'_title').style.cursor 	= 'move';
				new Draggable(this.name, {handle: this.name+'_title'});
			}

			if (this.closable) {
				var close = document.createElement('span');

				close.setAttribute('id', this.name+'_close');
				$(this.name).appendChild(close);
				$(this.name+'_close').addClassName('close');
				$(this.name+'_close').title 	= "Fermer";
				$(this.name+'_close').onclick 	= function () {
					local.hide();
				};
			}

			var container = document.createElement('div');

			container.setAttribute('id', this.name+'_container');
			$(this.name).appendChild(container);
			$(this.name+'_container').addClassName('container');

			var container2 = document.createElement('div');

			container2.setAttribute('id', this.name+'_container2');
			$(this.name+'_container').appendChild(container2);
			$(this.name+'_container2').addClassName('container2');

			var content = document.createElement('div');

			content.setAttribute('id', this.name+'_content');
			$(this.name+'_container2').appendChild(content);
			$(this.name+'_content').addClassName('content');
			$(this.name+'_content').insert('Chargement en cours ...');

			$(this.blackboard).hide();
			$(this.name).hide();
		}
	},

	show: function () {
		var local 	= this;

		new Ajax.Updater(this.name+'_content', this.file);

		if (window.innerHeight){
			this.larg 	= (window.innerWidth);
			this.haut 	= (window.innerHeight);
		} else {
			this.larg 	= (document.body.clientWidth);
			this.haut 	= (document.body.clientHeight);
		}

		$(this.name).style.left 			= ((this.larg - this.width)/2) + 'px';

		$(this.blackboard).style.zIndex 	= 1000;
		$(this.name).style.zIndex 			= 1001;

		$(this.blackboard).appear({duration:0.5, from: 0.0, to:0.8});
		$(this.name).appear({duration:0.5, from: 0.0, to:1.0});

		setTimeout(function(){local.resize();}, 500);
	},

	hide: function () {
		var local 		= this;

		if (this.closable && typeof(this.closable) == 'string') {
			location.hash 	= '#'+this.closable;
		}

		$(this.blackboard).appear({duration:0.5, from: 0.8, to:0.0});
		$(this.name).appear({duration:0.5, from: 1.0, to:0.0});

		setTimeout(function(){local.unset();}, 500);
	},

	unset: function () {
		$(this.blackboard).hide();
		$(this.blackboard).style.zIndex = 0;

		$(this.name).hide();
		$(this.name).style.zIndex 		= 0;
	},

	resize: function () {
		var local 		= this;

		if (this.ie) {
			var max 		= (this.haut - this.top + 30)/2;
		} else {
			var max 		= this.haut - (this.top*2);
		}

		if (local.is_numeric(this.minHeight) && this.minHeight > 0) {
			if (this.minHeight > max) {
				$(this.name).style.height 	= max + 'px';
			} else {
				$(this.name).style.height 	= this.minHeight + 'px';
			}
		} else {
			if ($(this.name).getHeight() > max) {
				$(this.name).style.height 	= max + 'px';
			}
		}

		$(this.name+'_content').style.height 	= ($(this.name).getHeight() - 55) + 'px';
	}
});

