/*

Ce fichier centralise un certain nombre de fonctions relatives
aux éléments d'une page HTML

*/

function HLM()
{
	//Déclaration des propriétés
	//this.mavariable="";

}

HLM.prototype.getElementsByClass = function(searchClass, node, tag) { 
    var classElements = new Array(); 
    if ( node == null ) 
        node = document; 
    if ( tag == null ) 
        tag = '*'; 
    var els = node.getElementsByTagName(tag); 
    var elsLen = els.length; 
    var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); 
    for (i = 0, j = 0; i < elsLen; i++) { 
        if ( pattern.test(els[i].className) ) { 
            classElements[j] = els[i]; 
            j++; 
        } 
    } 
    return classElements; 
}

HLM.prototype.getBody = function()
{
	return document.getElementsByTagName("body")[0];
}

HLM.prototype.getWindowWidth = function()
{
	try 
	{
		if (document.body)
		{
			return parseInt(document.getElementsByTagName("body")[0].clientWidth,10);
		} 
		else
		{
			if (document.all)
			{
				var myBody = HLM.getBody();
				return parseInt(myBody.clientWidth);
			}
			else
			{
				return parseInt(window.innerWidth);
			}
		}
	}catch(err)
	{
		return 0;
	}
}

HLM.prototype.getWindowHeight = function()
{
	if (document.body)
	{
		return parseInt(document.getElementsByTagName("body")[0].clientHeight);
	} 
	else
	{
		return window.innerHeight;
	}
}

//retourne la position Y d'un élément
HLM.prototype.getTopPos = function(targetobj)
{
	var posY = targetobj.offsetTop;
	while ((targetobj = targetobj.offsetParent) != null) posY += targetobj.offsetTop;
	
	return posY;
}

//retourne la position X d'un élément
HLM.prototype.getLeftPos = function(targetobj)
{
	var posX = targetobj.offsetLeft;
	while ((targetobj = targetobj.offsetParent) != null) posX += targetobj.offsetLeft;
	return posX;
}

//permet de swapper de class CSS 
//si la classe se termine par 0 on choisi la classe finissant par 1
// et inversement
HLM.prototype.classSwap =function (objet)
{
	if(objet!=undefined)
	{
		var sStatus=Number(objet.className.substr(objet.className.length-1,1)==0);
		objet.className=objet.className.substr(0,objet.className.length-1)+sStatus;
	}
}


HLM.prototype.detectScrollBar =function (objet)
{
	if (objet != undefined)
	{
		if (objet.tagName == "body")
		{
			if (document.body.clientHeight < document.body.scrollHeight) return true;
			if (document.body.clientWidth < document.body.scrollWidth) return true;
		}
		else
		{
     if (objet.scrollHeight > objet.clientHeight) return true;
     if (objet.scrollWidth > objet.clientWidth) return true;
		}
	}

	return false;
}



var HLM = new HLM();

//retourne un tableau d'élément par Id(s) ( i.e. $("id1", "id2", "id3") )
/*
function $() { 
    var elements = new Array(); 
    for (var i=0,len=arguments.length;i<len;i++) { 
        var element = arguments[i]; 
        if (typeof element == 'string') { 
            var matched = document.getElementById(element); 
            if (matched) { 
                elements.push(matched); 
            } else { 
                var allels = (document.all) ? document.all : document.getElementsByTagName('*'); 
                var regexp = new RegExp('(^| )'+element+'( |$)'); 
                for (var i=0,len=allels.length;i<len;i++) if (regexp.test(allels[i].className)) elements.push(allels[i]); 
            } 
            if (!elements.length) elements = document.getElementsByTagName(element); 
            if (!elements.length) { 
                elements = new Array(); 
                var allels = (document.all) ? document.all : document.getElementsByTagName('*'); 
                for (var i=0,len=allels.length;i<len;i++) if (allels[i].getAttribute(element)) elements.push(allels[i]); 
            } 
            if (!elements.length) { 
                var allels = (document.all) ? document.all : document.getElementsByTagName('*'); 
                for (var i=0,len=allels.length;i<len;i++) if (allels[i].attributes) for (var j=0,lenn=allels[i].attributes.length;j<lenn;j++) if (allels[i].attributes[j].specified) if (allels[i].attributes[j].nodeValue == element) elements.push(allels[i]); 
            } 
        } else { 
            elements.push(element); 
        } 
    } 
    if (elements.length == 1) { 
        return elements[0]; 
    } else { 
        return elements; 
    } 
}
*/

