
function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|s)" + className + "(s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i ];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

	
function Pager(tableName, itemsPerPage,pagerName, pagingId) {
    this.tableName = tableName;
    this.itemsPerPage = itemsPerPage;
    this.currentPage = 1;
    this.pages = 0;
    this.inited = false;
	this.rows; 
	this.pagerName = pagerName;
	this.pagingId = pagingId;
    
    this.showRecords = function(from, to) {
        for (var i = 0; i < rows.length; i++) {
            if (i < from || i > to)  
                rows[i].style.display = 'none';
            else
                rows[i].style.display = '';
        }
    }
	
	this.afficherSSP = function(titre, repertoire){
		var affiche_actu = document.getElementById('affiche');
		affiche_actu.style.display = '';
		var liste = document.getElementById(tableName);
		liste.style.display = 'none';
		var paging = document.getElementById(pagingId);
		paging.style.display = 'none';
		var element = document.getElementById('affiche');
		var imageHTML = '';
		imageHTML += '<div class="titre">' + titre + '</div>';
		imageHTML += '<div class="retour" onclick="' + this.pagerName + '.affiche()">Retour</div> ';
		imageHTML += '<div id="ssp"></div>';
		element.innerHTML = imageHTML;
		var so = new SWFObject("loader.swf", "loader", "100%", "100%", "8", "#FFFFFF");
		so.addParam("allowFullScreen","true");
		so.addParam("quality", "best");        
		so.addParam("wmode","transparent");
		so.addVariable("paramXMLPath",repertoire + "/param.xml");
		so.addVariable("initialURL", escape(document.location));
		so.write("ssp");
		
		Rounded("div.retour","#FFF","#8c8c8c");

	}
	
	this.afficherVideo = function(titre, fichier){
		var affiche_actu = document.getElementById('affiche');
		affiche_actu.style.display = '';
		var liste = document.getElementById(tableName);
		liste.style.display = 'none';
		var paging = document.getElementById(pagingId);
		paging.style.display = 'none';
		var element = document.getElementById('affiche');		
		var imageHTML = '';
		imageHTML += '<div class="titre">' + titre + '</div>';
		imageHTML += '<div class="retour" onclick="' + this.pagerName + '.affiche()">Retour</div> ';
		imageHTML += '<div id="video"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"';
		imageHTML += '	width="512" height="384" id="dewtube" align="middle">';
		imageHTML += '	<param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="dewtube.swf?movie=./data/videos/' + fichier + '" />';
		imageHTML += '<param name="quality" value="high" />';
		imageHTML += '<param name="bgcolor" value="#000000" />';
		imageHTML += '<embed src="dewtube.swf?movie=./data/videos/' + fichier + '"';
		imageHTML += 'quality="high" bgcolor="#000000" width="512" height="384" name="dewtube" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
		imageHTML += '</object></div>';
		imageHTML += '<div class="description">' + '&nbsp;' + '</div>';
		element.innerHTML = imageHTML;
		Rounded("div.retour","#FFF","#8c8c8c");

	}
	
	this.afficherImage = function(titre, fichier){
		var affiche_actu = document.getElementById('affiche');
		affiche_actu.style.display = '';
		var liste = document.getElementById(tableName);
		liste.style.display = 'none';
		var paging = document.getElementById(pagingId);
		paging.style.display = 'none';
		var element = document.getElementById('affiche');
		var imageHTML = '';
		imageHTML += '<div class="titre">' + titre + '</div>';
		imageHTML += '<div class="retour" onclick="' + this.pagerName + '.affiche()">Retour</div> ';
		imageHTML += '<div class="image"><img src="' + fichier + '" ></img></div>';
		imageHTML += '<div class="description">' + '&nbsp;' + '</div>';
		element.innerHTML = imageHTML;
		Rounded("div.retour","#FFF","#8c8c8c");
	}
    
    this.showPage = function(pageNumber) {
    	if (! this.inited) {
    		alert("not inited");
    		return;
    	}
        
        this.currentPage = pageNumber;
        
        var from = (pageNumber - 1) * (itemsPerPage);
        var to = from + itemsPerPage - 1;
        this.showRecords(from, to);
		this.showPageNav();
    }   
    
    this.prev = function() {
        if (this.currentPage > 1)
            this.showPage(this.currentPage - 1);
    }
    
    this.next = function() {
        if (this.currentPage < this.pages) {
            this.showPage(this.currentPage + 1);
        }
    }                        
    
    this.init = function() {
		var parent = document.getElementById(tableName);
        rows = getElementsByClassName('bandeau','div',parent);
        var records = rows.length; 
        this.pages = Math.ceil(records / itemsPerPage);
        this.inited = true;
		this.showPage(this.currentPage);
    }
	
	
    this.affiche = function() {
		var liste = document.getElementById(tableName);
		liste.style.display = '';
		var paging = document.getElementById(pagingId);
		paging.style.display = '';
		var affiche_actu = document.getElementById('affiche');
		affiche_actu.style.display = 'none';
	}

    this.showPageNav = function() {
    	if (! this.inited) {
    		alert("not inited");
    		return;
    	}
    	var element = document.getElementById(this.pagingId);
    	var pagerHtml = '';
    	pagerHtml += '<div id="previous" class="lien" onclick="' + this.pagerName + '.prev();" >';
		if(this.currentPage > 1){
			pagerHtml +=' <img src="./images/fleche-gauche.png">';
		}
    	pagerHtml += ' </div> ';
		if(this.pages > 1)
			pagerHtml += '<div id="currentPage">' + this.currentPage + '&nbsp;/&nbsp;' + this.pages +  '</div>'
		if(this.currentPage < this.pages)
			pagerHtml += '<div id="next" class="lien" onclick="'+this.pagerName+'.next();" > <img src="./images/fleche-droite.png"> </div>';            
        
        element.innerHTML = pagerHtml;
    }
}


