var AFAVENombreDePubAGuillaume = 4;

var AFAVEPubChangSources ;
var AFAVEPubChangeDisplayList ;
var AFAVEPubChangeBiggestInterval;
var AFAVEPubChangAppearInterval;
var AFAVEPubChangDisappearInterval;
var alphaPub;
var AFAVEnextPub;
var AFAVEPubChangeanteISREADY=false;
var adresseDATA_PubChang="";
var adresseDesImages_PubChang="";

function initPubChang(){

	
	var balisesScript = document.getElementsByTagName("script");
	if( balisesScript.length > 1 ){
		var i=0;
		while(i<balisesScript.length && adresseDATA_PubChang==""){
			
			if(balisesScript[i].src.indexOf("pubChangeantes.js") != -1 ){
				for( var x = 0; x < balisesScript[i].attributes.length; x++ ) {
		 			 if( balisesScript[i].attributes[x].nodeName.toLowerCase() == 'src' ) {
		 			 	var toto = balisesScript[i].attributes[x].value;
						adresseDATA_PubChang = balisesScript[i].attributes[x].value.substr(0, balisesScript[i].attributes[x].value.lastIndexOf("/"));
		 			 }
				}
			}
			i++;
		} 
	}
	else if( balisesScript.length==1){
		for( var x = 0; x < balisesScript[0].attributes.length; x++ ) {
 			 if( balisesScript[0].attributes[x].nodeName.toLowerCase() == 'src' ) {
				adresseDATA_PubChang = balisesScript[0].attributes[x].value.substr(0, balisesScript[0].attributes[x].value.lastIndexOf("/"));
 			 }
		}
	}
	else if(balisesScript.length==0){
		alert("ERROR : can't find script path");
	}
	
	adresseDesImages_PubChang = adresseDATA_PubChang.substr(0,adresseDATA_PubChang.lastIndexOf("/"))+"/images";
	
	if(adresseDesImages_PubChang.charAt(0) == "/") adresseDesImages_PubChang= adresseDesImages_PubChang.substr(1, adresseDesImages_PubChang.length);
	adresseDATA_PubChang =adresseDATA_PubChang.substr(0,adresseDATA_PubChang.lastIndexOf("/"))+"/data-1.0.txt";
	if(adresseDATA_PubChang.charAt(0) == "/") adresseDATA_PubChang= adresseDATA_PubChang.substr(1, adresseDATA_PubChang.length);
	
	AFAVEPubChangSources = loadData(adresseDATA_PubChang, adresseDesImages_PubChang);
	AFAVEPubChangeDisplayList=  new Array();
	
	for(var j=0; j<AFAVENombreDePubAGuillaume; j++){
		AFAVEPubChangeDisplayList[j] = pickRandomSource();

	}
	AFAVEnextPub = pickRandomSource();
	
	AFAVEPubChange()
	AFAVEPubChangeanteISREADY=true;
	AFAVEPubChangePlay();
}

function AFAVEPubChangePlay(){
	if(!AFAVEPubChangeanteISREADY)
		initPubChang();
	AFAVEPubChangeBiggestInterval = window.setInterval('AFAVEPubChange()', 15000);
}

function AFAVEPubChangeStop(){
	clearInterval(AFAVEPubChangeBiggestInterval);
}

function AFAVEPubChange(){
	AFAVEPubChangeDisplay();
	var celuiQuiVaChanger = Math.floor(Math.random()*100)%AFAVENombreDePubAGuillaume;
	alphaPub =1.0;
	AFAVEPubChangAppearInterval = window.setInterval('AFAVEPubAppear('+celuiQuiVaChanger+')',30);
}

function AFAVEPubAppear(celuiQuiVaChanger){
	AFAVEPubChangeDisplay();
	alphaPub-=0.05;
	if(navigator.appName.indexOf('Microsoft') !=-1) alphaPub=0;
	AFAVEPubChangeDisplayList[celuiQuiVaChanger]._opacity = alphaPub;
	

	
	if(alphaPub <=0){
		alphaPub=0;
		
		AFAVEPubChangeDisplayList[celuiQuiVaChanger] = AFAVEnextPub;
		clearInterval(AFAVEPubChangAppearInterval);
		AFAVEPubChangDisappearInterval= window.setInterval('AFAVEPubDisappear('+celuiQuiVaChanger+')',30);
	}
}

function AFAVEPubDisappear(celuiQuiVaChanger){
	
	alphaPub+=0.05;
    if(navigator.appName.indexOf('Microsoft') !=-1) alphaPub=1;
	AFAVEPubChangeDisplayList[celuiQuiVaChanger]._opacity = alphaPub;
	
	AFAVEPubChangeDisplay();
	
	if(alphaPub >=1) {
		alphaPub=1;
		clearInterval( AFAVEPubChangDisappearInterval);
		AFAVEnextPub = pickRandomSource();
	}
}

function loadData(adrDATA, adrPicts) {
	// TODO: remove url hardcoding
	adrDATA="/scripts/wdgt/pub/data-1.0.txt";
	
	
  var sources = new Array();
  var xhr_object = null;
  var flag = true;
  
  if (window.XMLHttpRequest) { // Firefox
    xhr_object = new XMLHttpRequest();
  } else if (window.ActiveXObject) { // Internet Explorer
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
  } else { // XMLHttpRequest non support par le navigateur
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    return;
  }
  xhr_object.open("GET", adrDATA, false);
  xhr_object.send(null);

  
  var reponse = xhr_object.responseText;
  while(reponse!= ""){
	   var adresse = reponse.substr(dernierEspacesansparenthese(reponse),reponse.length);
	   reponse = reponse.substr(0,dernierEspacesansparenthese(reponse));
	   var picture;
		if(reponse.lastIndexOf("\r\n") != -1){ 
			picture = reponse.substr(reponse.lastIndexOf("\r\n")+2,reponse.length);
			reponse = reponse.substr(0,reponse.lastIndexOf("\r\n"));
		}
		else {
			picture = reponse.substr(0,reponse.length);
			reponse = ""
		}
	   sources[sources.length] = new pubSource (adresse, picture);
  }
  
  
  return sources;
}

function dernierEspacesansparenthese( adr){
	if(adr.lastIndexOf(')') <= adr.lastIndexOf(' '))
		return adr.lastIndexOf(" ");
	else {
		var it = adr.length-1;
		var parenthesEstOuverte =false;
		while(adr.charAt(it)!=" " || parenthesEstOuverte){
			if(adr.charAt(it)==")") parenthesEstOuverte =true;
			if(adr.charAt(it)=="(") parenthesEstOuverte =false;
			it--;
		}
		return it;
	}
}


function pubSource (adresse, picture){
	this._adresse = adresse;
	this._picture = picture;
	this._opacity = 1;

}


function AFAVEPubChangeDisplay(){
	var divPub = document.getElementById("pubChang");

	
	var stringDisplay = "<table><tr>";
	for (var i = 0; i < AFAVENombreDePubAGuillaume; i++) {
	
		var stringOpacity;
		if (navigator.appName.indexOf('Microsoft') != -1) 
			stringOpacity = " style='filter:alpha(opacity=" + (AFAVEPubChangeDisplayList[i]._opacity * 100) + "); opacity:" + AFAVEPubChangeDisplayList[i]._opacity + ";' ";
		else 
			stringOpacity = " style='opacity:" + AFAVEPubChangeDisplayList[i]._opacity + ";' ";
		
		if (AFAVEPubChangeDisplayList[i]._adresse.lastIndexOf(")") < (AFAVEPubChangeDisplayList[i]._adresse.length - 1)) {
			stringDisplay += "<td width=135 border=0><a border=0 target='blank' href='" + AFAVEPubChangeDisplayList[i]._adresse + "'>";
			stringDisplay += "<img " + stringOpacity + " border=0 src='/scripts/wdgt/pub/" + adresseDesImages_PubChang + "/" + AFAVEPubChangeDisplayList[i]._picture + "'/></a></td>";
		} else{
			
			if(AFAVEPubChangeDisplayList[i]._adresse.indexOf("'") != -1){
				var tmpString = AFAVEPubChangeDisplayList[i]._adresse.replace("'", "\"");
				tmpString = tmpString.replace("'", "\"");
				AFAVEPubChangeDisplayList[i]._adresse = tmpString;
			}
			
			stringDisplay+= "<td width=135 border=0><a border=0 href='#' onclick='"+AFAVEPubChangeDisplayList[i]._adresse+" ; return false;'><img "+stringOpacity +" border=0 src='/scripts/wdgt/pub/"+adresseDesImages_PubChang+"/"+AFAVEPubChangeDisplayList[i]._picture+"'/></a></td>";
		}
	}
	stringDisplay += "</tr></table>";
	
	if(divPub) divPub.innerHTML = stringDisplay;
}

function pickRandomSource(){
	var doublon = true;
	var nouvelleSource;
	while(doublon ){
		doublon = false;
		nouvelleSource = AFAVEPubChangSources[Math.ceil(Math.random()*(AFAVEPubChangSources.length*100)) % AFAVEPubChangSources.length];
		if(!nouvelleSource)doublon = true;
		for(var k=0; k<AFAVEPubChangeDisplayList.length; k++){
			if(AFAVEPubChangeDisplayList[k]._picture == nouvelleSource._picture)
				doublon=true;
		}
	}
    return nouvelleSource;
}
function getRootSiteURL() {
	var reg=/(http|https):\/\/([^\/]+)/gi;
	var m=reg.exec(window.location.href);
	return rootSiteURL="http://"+m[2]+"/";
};
