/* Thunderseb TFP Viewer - JS Functions files */
/* ========================================== */

var preArray = new Array;
document.onmousemove = getMouse;

function init(xmp) {
	if(xmp == 'load') {
		if(cook.get('Thunderseb_FTPViewer_display'))
			var si = cook.get('Thunderseb_FTPViewer_display');
		else
			var si = 0;
	} else {
		si = document.getElementById('switchlist').selectedIndex;
		cook.set('Thunderseb_FTPViewer_display',si);
	}
	
	if(si == 0) {
		frenchTitles();
	} else if (si == 1) {
		sortAgain('icones');			
	} else {
		sortAgain('miniatures');
	}
	document.getElementById('switchlist').selectedIndex = si;	
}

function frenchTitles() {
	document.getElementsByTagName('PRE')[0].style.display = 'block';
	document.getElementById('newctnt').style.display = 'none';
	for (var i=0,c=document.getElementsByTagName('A').length; i<c ; i++) {
		element = document.getElementsByTagName('A')[i];
		if(element.getAttribute('href')=='?N=A')      { element.innerHTML='Nom'; }
		else if(element.getAttribute('href')=='?M=A') { element.innerHTML='Dernière modif'; }
		else if(element.getAttribute('href')=='?S=A') { element.innerHTML='Taille'; }
		else if(element.getAttribute('href')=='?S=A') { element.innerHTML='Taille'; }
	}
}

function extractPre() {
	var pre = document.getElementsByTagName('PRE')[0];
	pre.style.display = 'none';
	pri = pre.innerHTML;
	pri = pri.split('\n');

	var pos, src, type, nom, string;
	for(var i=2,c=pri.length-1;i<c;i++) {
		string = pri[i];
		
		pos = string.indexOf('src="') + 5;
		src = string.substring(pos,findTo(string,pos,'"')-1);
		
		pos = string.indexOf('alt="[') + 6;
		type = string.substring(pos,findTo(string,pos,']')-1);
		if(document.all && document.selection) {
			pos = type.indexOf('[') + 1;
			type = type.substring(pos, type.length);
		}
		//alert(type);
		
		pos = string.indexOf('href="') + 6;
		nom = string.substring(pos,findTo(string,pos,'"')-1);
		
		pos = string.indexOf('">') + 2;
		label = string.substring(pos,findTo(string,pos,'<')-1);
		
		pos = string.lastIndexOf('>') + 1;
		left = string.substring(pos, string.length);
		left = left.split(' ');
		var right = [];
		for(var j=0,d=left.length;j<d;j++) {
			if(left[j]) {
				right.push(left[j]);	
			} 
		}
		var date = right[0];
		var time = right[1];
		var size = right[2];
		if(size == '-') { size = 'inconnue'; }
				
		var subray = [src,type,nom,label,date,time,size];

		preArray.push(subray);
	}	
}

function sortAgain(style) {
	document.getElementsByTagName('PRE')[0].style.display = 'none';
	if(!preArray[0]) {
		extractPre();
	}

	if(style == 'miniatures') {
		var inner = '<DIV ID="tooltip">tooltip</DIV>';
		inner += '<DIV><!-- I Love IE --></DIV>';
		for(var i=0,c=preArray.length;i<c;i++) {
			
			if(document.all) { var style = 'height: 45px;'; } else { var style = ''; } // Sécifier une hauteur pour IE, sinon l'image prend la hauteur que lui impose le lien
			
			if(preArray[i][2].indexOf('.gif') != -1 || preArray[i][2].indexOf('.png') != -1 || preArray[i][2].indexOf('.jpg') != -1) {
				var style2 = ' STYLE="background: url('+preArray[i][2]+') no-repeat center center; cursor: hand pointer;"';	
				var style3 = 'display: none;';
				var clique = ' ONCLICK="window.location.href=\''+preArray[i][2]+'\'"';
			}
			else { var style2 = ''; var style3 = ''; var clique = ''; }
		
			inner += '<DIV CLASS="miniatures_div"'+style2+clique+'  ONMOUSEOVER="openToolTip(this);" ONMOUSEOUT="closeToolTip();" NAME="'+preArray[i][2]+'" TYPE="'+preArray[i][1]+'" DATE="'+preArray[i][4]+'" TIME="'+preArray[i][5]+'" SIZE="'+preArray[i][6]+'">';
			inner += '<A STYLE="'+style+style3+'" HREF="'+preArray[i][2]+'"><IMG STYLE="'+style3+'" SRC="'+preArray[i][0]+'" ALT="'+preArray[i][1]+'"></A><BR>';
			if(preArray[i][2].length >=  14) {
				var substringed = preArray[i][2].substring(0, 14);
				substringed += '...';
			} else {
				var substringed = preArray[i][2];
			}
			
			if(preArray[i][1] == 'PAR') { substringed = 'Dossier parent'; };
			inner += '<A CLASS="miniatures_a2" STYLE="'+style3+'" HREF="'+preArray[i][2]+'">'+substringed+'</A>';
			inner += '</DIV>';
			
		}
		inner += '<DIV CLASS="clear"></DIV>';
		document.getElementById('newctnt').innerHTML = inner;
		document.getElementById('newctnt').style.display = 'block';
	} 
	else if(style == 'icones') {
		var inner = '<DIV ID="tooltip">tooltip</DIV>';
		inner += '<DIV><!-- I Love IE --></DIV>';
		for(var i=0,c=preArray.length;i<c;i++) {
			
			if(document.all) { var style = 'height: 32px;'; } else { var style = ''; } // Sécifier une hauteur pour IE, sinon l'image prend la hauteur que lui impose le lien
		
			inner += '<DIV CLASS="bigicons_div" ONMOUSEOVER="openToolTip(this);" ONMOUSEOUT="closeToolTip();" NAME="'+preArray[i][2]+'" TYPE="'+preArray[i][1]+'" DATE="'+preArray[i][4]+'" TIME="'+preArray[i][5]+'" SIZE="'+preArray[i][6]+'">';
			inner += '<A STYLE="'+style+'" HREF="'+preArray[i][2]+'"><IMG SRC="'+preArray[i][0]+'"></A><BR>';
			if(preArray[i][2].length >=  14) {
				var substringed = preArray[i][2].substring(0, 14);
				substringed += '...';
			} else {
				var substringed = preArray[i][2];
			}
			
			if(preArray[i][1] == 'PAR') { substringed = 'Dossier parent'; };
			inner += '<A CLASS="bigicons_a2" HREF="'+preArray[i][2]+'">'+substringed+'</A>';
			inner += '</DIV>';
			
		}
		inner += '<DIV CLASS="clear"></DIV>';
		document.getElementById('newctnt').innerHTML = inner;
		document.getElementById('newctnt').style.display = 'block';	
	}
}

/* ======== Gestion de la ToolTip ======== */

function getMouse(event){
	if(document.all) {
		var x = window.event.clientX ;
		var y = window.event.clientY;
	} else {
		var x = event.clientX;
		var y = event.clientY;		
	}
	var tooltip = document.getElementById("tooltip");
	try {
		tooltip.style.left = x + 25 + 'px';
		tooltip.style.top = y + 25 + 'px';
	} catch(e) {} 
}

function openToolTip(target){
	var tooltip = document.getElementById('tooltip');
	tooltip.style.visibility = "visible";
    tooltip.style.display = "block";
	
	var text = '<UL><LI>Nom : '+target.getAttribute('NAME')+'</LI><LI>Type : '+target.getAttribute('TYPE')+'</LI><LI>Date de modif :  '+target.getAttribute('DATE')+' @  '+target.getAttribute('TIME')+'</LI><LI>Taille : '+target.getAttribute('SIZE')+'</LI></UL>';
	tooltip.innerHTML = text;
}

function closeToolTip() {
	var tooltip = document.getElementById('tooltip');
	tooltip.innerHTML = '';
	tooltip.style.visibility = 'hidden';
	tooltip.style.display = 'none';
}

/* ======== Gestion de strings ======== */

function findTo(string,start,to) {
	var char, start = parseInt(start);
	do {
		char = string.charAt(start);
		start++;
	} while(char != to);
	return start;
}

/* ======== Gestion des cookies ======== */

var cook = {
	set: function(name,string) {
		var dateToday = new Date(), dateExp = new Date();
		dateExp.setTime(dateToday.getTime() + (365*24*60*60*1000));
		document.cookie = name + '=' + string + ';expires=' + dateExp.toGMTString();
	},
	get: function(name) {
		var cookContent = document.cookie, cookEnd, i;
		for(i=0;i<cookContent.length;i++) {
		var j = i + name.length;
			if(cookContent.substring(i,j) == name) {
				cookEnd = cookContent.indexOf(";", j);
				if(cookEnd == -1)
					cookEnd = cookContent.length;
				return unescape(cookContent.substring(j+1, cookEnd));
			}
		}	
	}
}