
////////////// Version RC 1.02 du 19042007 //////////////////
// Gabriel Baude : gabriel.b@famouslab.com
////////////////////////////////////////////////////////////
// Gestionnaire de chargement mode POST et GET xmlhttprequest
////////////////////////////////////////////////////////////


function ahah(url, target, funcname) {
	function ahahDone() {
	  if(req.readyState == 4){ 
	    if(req.status == 200){ 
		  if(!(target == undefined)){
		    document.getElementById(target).innerHTML = req.responseText;
		  }
	   	  if(!(funcname == undefined)){
		    eval(funcname+"(req.responseText);");
		  }
	    }else{
		  if(!(target == undefined)){
		    document.getElementById(target).innerHTML = "ahah error:\n"+req.statusText;
		  }
	      if(!(funcname == undefined)){
		    eval(funcname+"(req.responseText);");
		  }
	    }
	  }
	}

	if(!(target == undefined)){
	    document.getElementById(target).innerHTML = 'Chargement...';
	}
	if(window.XMLHttpRequest){
		var req = new XMLHttpRequest();
	}else if(window.ActiveXObject) {
		var req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if(req){
		req.onreadystatechange = function() {
			ahahDone();
		};
		req.open("GET", url, true);
		req.send("");
	}  
}

function ahah_post(url,data, target, funcname) {
	function ahahDone() {
	  if(req.readyState == 4){ 
	    if(req.status == 200){ 
		  if(!(target == undefined)){
		    document.getElementById(target).innerHTML = req.responseText;
		  }
	   	  if(!(funcname == undefined)){
		    eval(funcname+"(req.responseText);");
		  }
	    }else{
		  if(!(target == undefined)){
		    document.getElementById(target).innerHTML = "ahah error:\n"+req.statusText;
		  }
	      if(!(funcname == undefined)){
		    eval(funcname+"(req.responseText);");
		  }
	    }
	  }
	}

	if(!(target == undefined)){
	    document.getElementById(target).innerHTML = 'Chargement...';
	}
	if(window.XMLHttpRequest){
		var req = new XMLHttpRequest();
	}else if(window.ActiveXObject) {
		var req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if(req){
		req.onreadystatechange = function() {
			ahahDone();
		};
		req.open("POST", url, true);
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		req.send(data);
	}  
}


/////////////////////////////////////////////////
// Gestionnaire d'affichage et masquage par Class
/////////////////////////////////////////////////


function getStyleClass (className) {
	for (var s = 0; s < document.styleSheets.length; s++)
	{
		if(document.styleSheets[s].rules)
		{
			for (var r = 0; r < document.styleSheets[s].rules.length; r++)
			{
				if (document.styleSheets[s].rules[r].selectorText == '.' + className)
				{
					return document.styleSheets[s].rules[r];
				}
			}
		}
		else if(document.styleSheets[s].cssRules)
		{
			for (var r = 0; r < document.styleSheets[s].cssRules.length; r++)
			{
				if (document.styleSheets[s].cssRules[r].selectorText == '.' + className)
					return document.styleSheets[s].cssRules[r];
			}
		}
	}
	
	return null;
}
function toggleClass(className) {
if (getStyleClass(className).style.display == 'block')
{getStyleClass(className).style.display = 'none';}
else {getStyleClass(className).style.display = 'block';}
return false;
}

// Mémo pour l'utilisation de cette class
/////////////////////////////////////////
//	Dans la CSS
//.court {
//display:block;}
//.long {
//display:none;}
//
//	Dans le HREF
//<a href="#" class="option" onclick="toggleClass('court');toggleClass('long');return false;">[+]Infos</a>
//
//	Dans le BODY
//	<span class="court">
//	Froid industriel et conditionnement d'air
//	</span>
//	<span class="long">Froid industriel et conditionnement d'air
//	<p>
//	Une formation spécialisée dans le froid industriel et le conditionnement d'air.
//	</p>
//	</span>


/////////////////////////////////////////////////
// Gestionnaire d'événement d'animation de calque
/////////////////////////////////////////////////


var timerlen = 5;
var AnimSlideTemps = 200;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display != "none")
		
                return; // ne peux pas rendre visible un élément déjà visible

        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
	document.getElementById(objname + '_link').innerHTML = "<img src='image/interface/moins.gif'>"; // on change le + et - par ce que l'on veut 
        

}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")

                return; // ne peux pas rendre invisible un élément déjà invisible

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
	document.getElementById(objname + '_link').innerHTML = "<img src='image/interface/plus.gif'>";
}

function startslide(objname){
        obj[objname] = document.getElementById(objname);

        endHeight[objname] = parseInt(obj[objname].style.height);
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > AnimSlideTemps)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / AnimSlideTemps * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;

                obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}

//
//function toggleSlide(objname){
//  if(document.getElementById(objname).style.display == "none"){
//    // le calque est masquer alors le rendre visible
//    slidedown(objname);
//  }else{
//    // le calque est visible alors le masquer
//    slideup(objname);
//  }
//}

function toggleSlide(objname) {
  if (document.getElementById(objname).style.display != "none") {
    // le calque est masquer alors le rendre visible
    slideup(objname);
    document.getElementById(objname + '_link').innerHTML = "<img src='image/interface/plus.gif'>";
  }
  else {
    // le calque est visible alors le masquer
    slidedown(objname);
    document.getElementById(objname + '_link').innerHTML = "<img src='image/interface/moins.gif'>";
  }
}

//// Function d'ouverture conditionnelle

function book(objname){
var f=1
for (f=1;f<=30;f++)
{
slideup("book" + f);
slidedown(objname);
}
}

//////////////////////////////////////////
//////////////// Usage ///////////////////
//////////////////////////////////////////

//// Presentation de la structure html

//<a href="javascript:;" onMouseDown="faq('faq1');">Question 1</a><br>
//<div id="faq1" style="display:none; overflow:hidden; height:65px; margin-left: 3px; font-size:11px;">Answer 1</div><br>
//<a href="javascript:;" onMouseDown="faq('faq2');">Question 2</a><br>
//<div id="faq2" style="display:none; overflow: hidden; height: 65px; margin-left: 3px; font-size:11px;">Answer 2</div><br>
//<a href="javascript:;" onMouseDown="faq('faq3');">Question 3</a><br>
//<div id="faq3" style="display:none; overflow: hidden; height: 65px; margin-left: 3px; font-size:11px;">Answer 3</div><br>
//<a href="javascript:;" onMouseDown="faq('faq4');">Question 4</a><br>
//<div id="faq4" style="display:none; overflow: hidden; height: 65px; margin-left: 3px; font-size:11px;">Answer 4</div><br>
//<a href="javascript:;" onMouseDown="faq('faq5');">Question 5</a><br>
//<div id="faq5" style="display:none; overflow: hidden; height: 65px; margin-left: 3px; font-size:11px;">Answer 5</div>






/////////////////////////////////////////


currentShownDiv = "";



function jsClose(id) {
	currentShownObj = document.getElementById(currentShownDiv);
   
	if (currentShownObj != null)
		currentShownObj.style.display='none'; 
      
	if (id == currentShownDiv) {
		currentShownDiv = "";
		return;
	}
   
	currentShownDiv = id;
   
	objToShow = document.getElementById(id);
   
	if (objToShow.style.display == 'none') {
		objToShow.style.display='block';
	} else {
		objToShow.style.display='none';
	}
}

///////////////////////////////////////////


function showPic(whichpic) {
  if(!document.getElementById) return true;
  document.getElementById('placeholder').src = whichpic.href;
  document.getElementById('desc').innerHTML = (whichpic.title)?whichpic.title:whichpic.innerHTML;
  return false;
}
