function changeClicked(id, val, type, userId, validatedVal, validator, friends)
{
//window.event.cancelBubble=true;//ie
//window.event.stopPropagation();//ff
elemId="changeTd"+id;
elem=document.getElementById(elemId);
var currentVal = val==''?validatedVal:val;
if(elem){
options="";
elem.innerHTML=options;
}
else
alert("changeClicked("+id+"): " +elemId+" not found");
}
function changeSelectChanged(id,type,userId,oldVal,validator,friends)
{
elemId="changeTd"+id+"select";
elem=document.getElementById(elemId);
if(elem){
val=elem.options[elem.selectedIndex].value;
//alert("changeSelectChanged for id "+id+" : value="+val);
makeRequest("/?p=change&type="+type+"&id="+id+"&val="+val+"&userId="+userId+"&oldVal="+oldVal+"&validator="+validator+"&friends="+friends);
}
else
alert("changeSelectChanged("+id+"): " +elemId+" not found");
}
function changeDone(id,val,type,label,title,userId,validatedVal,validator,friends)
{
elemId="notValidatedTd"+id;
elem=document.getElementById(elemId);
if(elem){
elem.innerHTML=label;
elem.className="";
elem.title=title;
}
else
alert("changeDone("+id+"): " +elemId+" not found");
elemId="changeTd"+id;
elem=document.getElementById(elemId);
if(elem){
elem.innerHTML='Change';
}
else
alert("changeDone("+id+"): " +elemId+" not found");
}
function getEventParams(id)
{
makeRequest("/?p=ajaxEventParams&id="+id);
}
function applyEventParams(array)
{
if(document.getElementById("title").value == '')
document.getElementById("title").value=array["label"];
if(document.getElementById("place").value == '')
document.getElementById("place").value=array["place"];
if(document.getElementById("f_date1").value == '')
document.getElementById("f_date1").value=array["begin"];
if(document.getElementById("f_date2").value == '')
document.getElementById("f_date2").value=array["end"];
selectedManager = document.getElementById("manager");
for(var i=0; i < selectedManager.length ; i++)
{
if(selectedManager.options[i].value==array["manager"])
{
selectedManager.selectedIndex=i;
break;
}
}
}
function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
xmlhttp.overrideMimeType("text/xml");
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
function hideStatus(){
//alert(document.getElementById("statuss"));
if(document.getElementById("status"))
document.getElementById("status").style.visibility="hidden";
else
parent.document.getElementById("status").style.visibility="hidden";
}
function showStatus(txt){
if(document.getElementById("status")){
document.getElementById("status").innerHTML=txt;
document.getElementById("status").style.visibility="visible";
}
else{
//alert("parent : "+parent);
//alert("doc:"+document);
//alert("document.getElementById(status) : "+parent.document.getElementById("status"));
parent.document.getElementById("status").innerHTML=txt;
parent.document.getElementById("status").style.visibility="visible";
}
setTimeout("hideStatus();", 1500 );// TODO : delete nécessaire ?
}
function traitementReponse(http_request) {
alert("this function should no be called : TODO : remove it");
}
/*function makeRequest1(url){
var xhr_object = null;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function(){
if ( xhr_object.readyState == 4 ){
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
//document.getElementById(position).innerHTML = xhr_object.responseText;
var affich_list=xhr_object.responseText;
//obj = document.getElementById(id_ecrire);
//obj.innerHTML = affich_list;
//alert("affich_list : "+affich_list);
if(affich_list =="unlock_ok"){
do_unlock(true);
return;
}
if(affich_list =="unlock_ko"){
do_unlock(false);
return;
}
if(affich_list !="")
showStatus(affich_list);
}
}
// dans le cas du get
xhr_object.send(null);
}*/
function makeSynchronousRequest(url) {
if (window.XMLHttpRequest) {
AJAX=new XMLHttpRequest();
} else {
AJAX=new ActiveXObject("Microsoft.XMLHTTP");
}
if (AJAX) {
AJAX.open("GET", url, false);
AJAX.send(null);
return AJAX.responseText;
} else {
return false;
}
}
// from http://www.commentcamarche.net/forum/affich-2188286-php-ajax-listes-deroulantes
// Requette AJAX
function makeRequest(url){
var http_request = false;
//alert("makeRequest("+url+")");
//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
else
alert("Unknown browser for makeRequest("+url+")");
if (!http_request) {
alert('Abandon :( Impossible de créer une instance XMLHTTP');
return false;
}
http_request.onreadystatechange = function() {
var affich="";
if (http_request.readyState == 4){// || http_request.readyState == 3) {// TODO : devrait etre 4, éterminé" au lieu de "en cours" (cf http://www.toutajax.info/doku.php?id=readystate)
if (http_request.status == 200) {
// cas avec reponse de PHP en mode texte:
//chargement des elements reçus dans la liste
var affich_list=http_request.responseText;
//obj = document.getElementById(id_ecrire);
//obj.innerHTML = affich_list;
//alert("affich_list : ["+affich_list+']');
var reg=new RegExp("[\n]+", "g");
var tableau=affich_list.split(reg);
if(tableau[0]=='ok')
{
eval(tableau[1]); // TODO this is unsecure
return;
}
else if(tableau[0] != '')
{
alert(tableau[0]+" : "+tableau[1]);
return;
}
}
else if(http_request.status != 0){
alert('An error has occured during the request. ('+http_request.status+')');
}
}
//alert('traitement reponse : state='+http_request.readyState+", status="+http_request.status+",resp="+http_request.responseText);
} //affectation fonction appelée qd on recevra la reponse
// lancement de la requete
http_request.open('GET', url, true);//true=asynchrone, false=synchrone
//changer le type MIME de la requête pour envoyer des données avec la méthode POST , !!!! cette ligne doit etre absolument apres http_request.open('POST'....
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
//obj=document.getElementById(id_niveau);
//data="val_sel="+obj.value;
data="";
http_request.send(data);
//alert("makerequest done");
}
function validateUserClicked(userId)
{
makeRequest("./?p=change&type=validate&user="+userId);
}
function changeValidateDone(userId, label)
{
elemId="notValidatedTd"+userId;
elem=document.getElementById(elemId);
if(elem){
elem.innerHTML=label;
}
else
alert("changeValidatedDone("+userId+"): " +elemId+" not found");
}
function delEventClicked(eventId, confirmText)
{
res=confirm(confirmText);
if(!res)
return;
makeRequest("./?p=change&type=delEvent&id="+eventId);
}
function delReminderClicked(reminderId, confirmText)
{
res=confirm(confirmText);
if(!res)
return;
makeRequest("./?p=change&type=delReminder&id="+reminderId);
}
function changeDelEventDone(id)
{
elemId="Tr"+id;
elem=document.getElementById(elemId);
if(!elem){
alert("changeDelEventDone("+id+"): " +elemId+" not found");
return;
}
elemId2="eventsTable";
elem2=document.getElementById(elemId2);
if(!elem2){
alert("changeDelEventDone("+id+"): " +elemId2+" not found");
return;
}
elem2.deleteRow(elem.rowIndex);
}
function changeDelReminderDone(id)
{
elemId="Tr"+id;
elem=document.getElementById(elemId);
if(!elem){
alert("changeDelReminderDone("+id+"): " +elemId+" not found");
return;
}
elemId2="remindersTable";
elem2=document.getElementById(elemId2);
if(!elem2){
alert("changeDelReminderDone("+id+"): " +elemId2+" not found");
return;
}
elem2.deleteRow(elem.rowIndex);
}