
function changeImage(imgid, url) {
    var thisimg = document.getElementById(imgid);
    if (typeof(thisimg)!="object") return false;
    if (thisimg.isFixed) {
        var currentAlphaImg = thisimg.filters(0).src
        if (currentAlphaImg != url)
            thisimg.filters(0).src = url;
    } else {
        if (thisimg.src != url) {
            thisimg.src = url;
        }
    }
    return true;
}

/***
* flipLayer(id_layer)
* retourne
**/
var this_disp = new Array();
function flipLayer(thislayer) {
	var thisdiv=document.getElementById('obj_'+thislayer+'_div');
	var thisimg=document.getElementById('obj_'+thislayer+'_img');
	if (thisdiv.style.display == 'none') { // ouvert
		thisdiv.style.display = 'block';
        if (thisimg && thisimg.picon) changeImage('obj_'+thislayer+'_img', thisimg.picon);
        else if (thisimg) thisimg.src = '/images/picto_down.gif';
		this_disp[thislayer] = 1;
        return true;
	} else {                               // fermé
		thisdiv.style.display = 'none';
        if (thisimg && thisimg.picoff) changeImage('obj_'+thislayer+'_img', thisimg.picoff);
        else if (thisimg) thisimg.src = '/images/picto_action.gif';
		this_disp[thislayer] = 0;
        return false;
	}
}
var this_disp_family = new Array();
function swapLayer(layer_family, layerb) {
    flipLayer(layer_family.toString()+this_disp_family[layer_family].toString());
    flipLayer(layer_family.toString()+layerb.toString());
    this_disp_family[layer_family] = layerb;
}
function openwin(theurl, thename, thescroll, theresize, thex, they) {
  if (thescroll==1) thescroll='yes'
     else thescroll='no'
  if (theresize==1) theresize='yes'
     else theresize='no'
  var newwin = window.open(theurl, thename, 'location=no,toolbar=no,menubar=no,scrollbars='+thescroll+',status=no,resizable='+theresize+',width='+thex+',height='+they);
  if (newwin == null ) {
     alert("Un anti popup a bloqué cette fonction. Configure ton navigateur pour l'autoriser.\nAn antipopup mechanism is turned on. You must accept popup from bbackzone to use this fonction.");
  }
  return newwin;
}

//*********************************************
// FIX Les png sous IE
//*********************************************

if (document.all) {
    var arVersion = navigator.appVersion.split("MSIE")
    var version = parseFloat(arVersion[1])
    var needPNGFixing = (version >= 5.5) && (version < 7) ;
} else
    var needPNGFixing = false;

function fixPNG(img) // correctly handle PNG transparency in Win IE 5.5 or higher.
{
    if (needPNGFixing && (document.body.filters))
    {
/*       http://homepage.ntlworld.com/bobosola/pnginfo.htm
*/
         var strTag = " id='"+img.id+"' isFixed=true";
         var strStyle = "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + img.src + "\', sizingMethod='image');display:none;"+img.style.cssText+";";
         var strOnload = "this.style.display='inline'";
         var strNewHTML = "<img src=/images/1010.gif "+strTag+" ";
         if (img.useMap) {
            strTag += " useMap='"+img.useMap+"'";
            strStyle += ";width:"+img.width+";height:"+img.height+"";
         }
         if (img.align) strTag+=" align='"+img.align+"' ";
         if (img.picon) strOnload += ";this.isFixed=true;this.picon='"+img.picon+"';this.picoff='"+img.picoff+"'";

         strNewHTML +="  onLoad=\"";
         img.outerHTML = "<img src=/images/1010.gif "+strTag+" style=\""+strStyle+"\" onload=\""+strOnload+"\">";

    }
    else img.isFixed = false;
}

//*********************************************
// REDIMENSIONNER IMAGES
//*********************************************
var to_resize=new Array();
function resizePicto(step) {
    resizePic(to_resize[step].img, to_resize[step].x_max, to_resize[step].y_max);
    //delete(to_resize[step]);
    to_resize[step] = true;
}
function resizePic(img,x_max,y_max) {
    var step = to_resize.length;
    if (to_resize[step] != null && to_resize[step]===true) return false;
    img.style.display = 'block';
    if (img.height==0) {
        img.style.display = 'none';
        to_resize[step] = new Object();
        to_resize[step].img=img; to_resize[step].x_max=x_max; to_resize[step].y_max=y_max;
        setTimeout('resizePicto('+step+');',10);
    }
    var x = img.width;
    var y = img.height;
    var ratio = y / x;
    //if (deja) { deja=false; alert(img.instance + "\r\n" + ratio);}
    if (x>x_max) {
        img.width = x_max;
        y = img.height = x_max * ratio;
    }
    if (y>y_max) {
        img.height = y_max;
        x = img.width = y_max / ratio;
    }
    img.style.display = 'none';
    img.style.display = 'block';
    return true;
}
//*********************************************

// ****************************************************************** UPDATE LAYER
function isLayerVisible(lelayer) {
   /*
   switch(navigator.family) {
     case 'nn4': return document.layers[lelayer].visibility ?"visible":"hide"; break;
     case 'ie4': return document.all[lelayer].style.visibility ?"visible":"hidden"; break;
     case 'gecko': return document.getElementById(lelayer).style.visibility?"visible":"hidden"; break;
   }
   return false;
   */
   return document.getElementById(lelayer).style.display!="none";
}
function makeVisible(lelayer, isvisible) {
   if (isvisible==-1) isvisible=isLayerVisible(lelayer)?0:1;
   /*
   switch(navigator.family) {
     case 'nn4': document.layers[lelayer].visibility = isvisible==1?"visible":"hide"; break;
     case 'ie4': document.all[lelayer].style.visibility= isvisible==1?"visible":"hidden"; break;
     case 'gecko': document.getElementById(lelayer).style.visibility= isvisible==1?"visible":"hidden"; break;
   }
   //eval(lelayer+"_visible = isvisible==1?true:false");
   */
   document.getElementById(lelayer).style.display = isvisible?"block":"none";
}

function upDate(text, lelayer) {
  switch(navigator.family) {
    case 'nn4':
        var lyr = document.layers[lelayer].document;
        lyr.open();
        lyr.write(text);
        lyr.close();
        break;
    case 'ie4':
        document.all[lelayer].innerHTML=text;
        break;
    case 'gecko':
    default:
        divel=document.getElementById(lelayer);
        divel.innerHTML=text;
        break;
  }
}

// ************************************* CHARGEMENT EXTERNES
var scriptnum = 0;

function loadScript(url) {
  scriptnum++;
  scriptid = "runscript" + scriptnum;
  /*
  var thescript=document.createElement('span');
  thescript.setAttribute('id',scriptid);
  thescript.innerHTML="<script type='text/javascript' src='"+url+"'><\/script>"
  */
  var thescript=document.createElement('script');
  thescript.setAttribute("defer", 'false');
  thescript.setAttribute('id',scriptid);
  thescript.setAttribute("type",'text/javascript');
  thescript.setAttribute('src',url);
  document.body.appendChild(thescript);
  //thescript.onload = new Function('removeObject("'+scriptid+'");');
  setTimeout('removeObject("'+scriptid+'");',10000);
}
function runScript(script,scriptid) {
  /*
  var toto=document.getElementById('pouf');
  for(var i in toto) {
     alert(i+':'+toto[i]);
  }
  */
  scriptid = "js"+scriptid;
  removeObject(scriptid);
  var thescript=document.createElement('SCRIPT');
  if(navigator.userAgent.toLowerCase().indexOf("safari")!=-1){
    thescript.appendChild(document.createTextNode(script));
  } else {
    thescript.text=script;
  }
  var headID = document.getElementsByTagName("body")[0];
  var pouf = headID.appendChild(thescript);
  //for (var i in pouf) if (pouf[i]!=null) alert(i+'='+pouf[i])
}

function removeObject(objid) {
  var obj = document.getElementById(objid);
  try {
    obj = document.body.removeChild(obj);
    delete obj;
  }
  catch(x) {
  }
}

function findPosX(obj)
{
    var curleft = 0;
    if(obj.offsetParent)
        while(1)
        {
          if (/^div$/i.test(obj.tagName)) curleft += obj.scrollLeft;
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj)
{
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          if (/^div$/i.test(obj.tagName)) curtop += obj.scrollTop;
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
}

/*******************************************  AJAX CONTENT LOADER
* destination_layer = "script"  pour evaluer le truc
* form_topost à omettre si GET
**/
function includeContent(url, destination_layer, form_topost) {
    var page_request = false
    if (window.XMLHttpRequest) {// if Mozilla, Safari etc
        page_request = new XMLHttpRequest()
    }
    else if (window.ActiveXObject){ // if IE
        try {
            page_request = new ActiveXObject("Msxml2.XMLHTTP")
        }
        catch (e){
            try{
                page_request = new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch (e){ }
        }
    }
    else
    {
        return false
    }
    page_request.onreadystatechange = function() {
        if (page_request.readyState == 4) {
            if (destination_layer == "void") {
            }
            else if (destination_layer == "script") {
                try {
                    eval(page_request.responseText);
                } catch(e){
                    //errorstr = ''; for (var dk in e) errorstr+=dk+':'+e[dk]+'\n'; alert(errorstr);
                    /*
                    alert(e+'\n'+page_request.responseText)
                    alert('Une erreur empeche le site de fonctionner. Contacte stp le webmaster en la lui reportant:\nA bug occurred. It may prevent further fonctionalities. Please contact and report to the Webmaster this text:\n'+e);
                    var errorstr = ""; for (var i in e) errorstr+=i+"="+e[i]+"\n";
                    var newform = new Object(); newform.elements = new Array();
                    newform.elements[0] = {type:'text', name:'type', value:encodeURIComponent(errorstr).replace('&','%26'),title:''};
                    newform.elements[1] = {type:'text', name:'url', value:encodeURIComponent(url).replace('&','%26'),title:''};
                    newform.elements[2] = {type:'text', name:'dest', value:encodeURIComponent(destination_layer),title:''};
                    newform.elements[3] = {type:'text', name:'content', value:encodeURIComponent(page_request.responseText).replace('&','%26'),title:''};
                    newform.elements[3] = {type:'text', name:'userid', value:last_id,title:''};
                    includeContent("/error_report.php","void",newform);
                    */
                }
            } else {
                var obj = document.getElementById(destination_layer);
                var response = page_request.responseText.split("<script>");
                var responseHTML = response[0];
                var responseJS = ""; var foo=[];
                for (var i=1; i<response.length; i++) {
                    foo = response[i].split("</script>");
                    responseJS += foo[0];
                    //responseHTML += "<script>"+foo[0]+"</script>"+foo[1];
                    responseHTML += foo[1];
                }

                obj.innerHTML=responseHTML;
                obj.style.visibility = "visible";
                if (responseJS!="") {
                    //try {
                        //alert(responseHTML)
                        //alert(responseJS)
                        runScript(responseJS,destination_layer);
                    //} catch(e){}
                }
                testLoadingComplete();
            }
        }
    }
    if (typeof form_topost=="undefined") {
        page_request.open('GET', url, true) //get page synchronously
        page_request.send(null);
    } else {
        page_request.open('POST', url, true) //get page synchronously
        page_request.setRequestHeader("accept-charset", "UTF-8");
        page_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
        var poststr = "";
        for(var i = 0;i < form_topost.elements.length;i++) {
            els = form_topost.elements[i];
            ft = els.title;
            fv = els.value;
            fn = els.name;
            switch(els.type) {
                case "text":
                case "hidden":
                case "password":
                case "textarea":
                    if(encodeURI(ft) == "required" && encodeURIComponent(fv).length < 1) {
                        alert(''+fn+' is a required field, please complete.');
                        els.focus();
                        return false;
                    }
                    poststr += fn + "=" + encodeURIComponent(fv) + "&";
                    break;
                case "checkbox":
                case "radio":
                    if(els.checked) poststr += fn + "=" + encodeURIComponent(fv) + "&";
                    break;
                case "select-one":
                    poststr += fn + "=" + els.options[els.selectedIndex].value + "&";
                    break;
            }
        }
        poststr = poststr.substr(0,(poststr.length - 1));
/*
        for (var j=0; j<els.length; j++) {
          try {
            alert( els[j].name + "=" + encodeURI( els[j].value ) );
            poststr += els[j].name + "=" + encodeURI( els[j].value ) + "&";
          } catch(e) { }
        }
*/
        page_request.send(poststr);
    }
    return true;
}

//************************ Forms
 var currentpage = false;
 var radio_toreset = new Array();

 function setCheckbox(thisForm, checkObj, img, val) {
      if (currentpage=="cv") modif=true
      if (document.forms[thisForm][checkObj].value!=val) {
        document.forms[thisForm][checkObj].value = val;
        changeImage(img,"/images/checkbox_check.png");
      }
      else {
        document.forms[thisForm][checkObj].value = "0";
        changeImage(img,"/images/checkbox_uncheck.png");
      }
 }


 function setRadio(thisForm, checkObj, Val, Default) {
      if (typeof radio_toreset[checkObj] == "undefined") {
          if (Default=='') radio_toreset[checkObj]=-99;
          else radio_toreset[checkObj] = Default;
      }
      if (radio_toreset[checkObj] == Val) {
          var obj_to_unset = Val;
          var obj_to_set = Default;
      } else {
          var obj_to_unset = radio_toreset[checkObj];
          var obj_to_set = Val;
      }

      radio_toreset[checkObj] = obj_to_set;
      document.forms[thisForm][checkObj].value = obj_to_set;

      if (typeof document.images['img_'+checkObj+"_"+obj_to_unset] != "undefined") document.images['img_'+checkObj+"_"+obj_to_unset].src = "/images/checkbox_uncheck.png";
      if (typeof document.images['img_'+checkObj+"_"+obj_to_set]   != "undefined") document.images['img_'+checkObj+"_"+obj_to_set].src = "/images/checkbox_check.png";
  }

/*************************************************************************************************************/

window.saveNavigator = window.navigator;
navigator.OS    = '';
navigator.family  = '';

var platform;
if (typeof(window.navigator.platform) != 'undefined')
{
 platform = window.navigator.platform.toLowerCase();
 if (platform.indexOf('win') != -1)
   navigator.OS = 'win';
 else if (platform.indexOf('mac') != -1)
   navigator.OS = 'mac';
 else if (platform.indexOf('unix') != -1 || platform.indexOf('linux') != -1 || platform.indexOf('sun') != -1)
   navigator.OS = 'nix';
}

var i = 0;
var ua = window.navigator.userAgent.toLowerCase();

if (ua.indexOf('opera') != -1)
{
 navigator.family  = 'opera';
}
else if ((i = ua.indexOf('msie')) != -1)
{
 navigator.version  = parseFloat('0' + ua.substr(i+5), 10);
 if (navigator.version < 4)
   navigator.family = 'ie3';
 else
   navigator.family = 'ie4'
}
else if (ua.indexOf('gecko') != -1)
{
 navigator.family = 'gecko';
}
else if ((ua.indexOf('mozilla') !=-1) && (ua.indexOf('spoofer')==-1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera')==-1)&& (ua.indexOf('webtv')==-1) && (ua.indexOf('hotjava')==-1))
{
 navigator.family = 'nn' + parseInt(navigator.appVersion);
}
else if ((i = ua.indexOf('aol')) != -1 )
{
 navigator.family  = 'aol';
}
else if ((i = ua.indexOf('hotjava')) != -1 )
{
 navigator.family  = 'hotjava';
}
