var subarticleVar = new Array();



function subArticle(arg, maxChapter, maxchapterOrder, div, divPar, posX, posY, changeColorSubDir) {
	try { 
		if (document.getElementById(div).objPar == document.getElementById(div).divPar);
	} catch (e) {
		
		makeBloc(div, " ");
	}

	// console.log(arg);
	// try {
		var obj = document.getElementById(div);
		if ((subarticleVar[arg] != undefined) && (subarticleVar[arg] != '')) {
			obj.innerHTML = subarticleVar[arg];
		} else {
			var url = "modules/list/subArticle.php" + arg + "&thisDiv=" + div + "&maxChapter=" + maxChapter + "&maxChapterOrder=" + maxchapterOrder;

			var fi = new FragmentImporter(url, 'subarticleVar[\"' + arg + '\"] = this.baseElement.innerHTML;', obj);
			fi.load();
			// subarticleVar[arg] = obj.innerHTML;
		}
			
		objPar = document.getElementById(divPar);
		try {	
			var dimX = obj.offsetWidth;
			var dimY = obj.offsetHeight;
			var dimParX = objPar.offsetWidth;
			var dimParY = objPar.offsetHeight;
		} catch (e) {
			// si le try est pas possible, c'est le menuItemClicked
			divPar = "menuItemClicked";
			objPar = document.getElementById(divPar);
			var dimX = obj.offsetWidth;
			var dimY = obj.offsetHeight;
			var dimParX = objPar.offsetWidth;
			var dimParY = objPar.offsetHeight;
		}
		

		// modif : la valeur négative du PosX ou posY indique une valeur constante à virer
		// avant : 
		if (posY == -1) posY = objPar.offsetTop + 20 ;  
		if (posX  <= -1) posX = objPar.offsetLeft + 20 + (dimParX - dimX)/2 + (-posX);

		obj.style.visibility = "visible";
		obj.style.left = posX + "px";
		obj.style.top = posY + "px";
		obj.style.position = "absolute";
		

		var applyStyle = false;
		if (changeColorSubDir != 0) {
			try {
				if (divPar != "menuItemClicked") var color = getStyle(objPar, 'color');
				else var color = getStyle(objPar, 'background-color');

				// on stocke la couleur initiale


				// on corrige en fonction du coef de teinte
				var arrayColor = color.split(',');
				var channel = new Array;
				channel[0] = arrayColor[0].substring(4).valueOf();
				channel[1] = arrayColor[1].valueOf();
				channel[2] = arrayColor[2].substring(0, arrayColor[2].length-1).valueOf();

				channel = filterLightTint(channel, changeColorSubDir); //changeColorSubDir

				var newColor = "rgb(" + channel[0] + ", " + channel[1] + ", " + channel[2] + ")";

				// console.log ("red : " + channel[0] + " green " + channel[1] + " blue : " + channel[2]);
				obj.style.backgroundColor = newColor;
				obj.style.borderColor = color;
				//obj.style.color = getStyle(objPar, 'color');;

				// changer les couleurs des bordures des liens
				var listOfA = obj.getElementsByTagName('a');
				// console.log(listOfA.length);
				for (i=0; i < listOfA.length; i++ ) {
					listOfA[i].style.borderColor = color;
				}
				applyStyle = true;
			} catch(e) {
				applyStyle = false;
			}
		}
		if (!applyStyle) {
			obj.style.borderColor = null;
			obj.style.backgroundColor = null;
			obj.setAttribute('class','subarticle ');
			obj.setAttribute('className','subarticle ');
		}

		obj.par = objPar;



		var dateNow = new Date();
		dateNow.setSeconds(0);
		obj.dateNow = dateNow;
		obj.hide = true;
		obj.timing = 0;


		document.subArticleObj = obj;

		obj.onmouseover = function() {
			this.hide = false;
			this.timing = 0;
			obj.style.visibility = "visible";


		}
		obj.onmouseout =function() {
			this.hide = true;
			var dateNow = new Date();
			this.dateNow = dateNow;
			this.timing = 0;
		}


		document.onmousemove = function(e) {
			// MousePosition
			if (!e) e = window.event;	
			mouseX = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
			mouseY = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
			moveIndicator();
			
			obj = document.subArticleObj;

			if ((obj.timing > 30) && (obj.hide)) {
				obj.style.visibility = "hidden";
				obj.timing = 0;
			}	
			else obj.timing++;
			
			// try {
			// 	
			// } catch (e) {}
			// 
		}
	// } catch(e) {
	// 	console.log("Initialisation");
	// }
}




function openSubArticle(div) {
	obj = document.getElementById(div);
	obj.hide = false;
	obj.timing = 0;
	obj.style.visibility = "visible";

}

function changeSubArticle(divSubArticle, url, div, changeStyle) {
	changeContents(url, div);	
	var block = document.getElementById(divSubArticle);
	var obj = block.par;
	console.log(changeStyle + " / ");
	
	if (changeStyle) changeStyleOfItem(obj) ;
}

function changeStyleOfItem(obj) {
		
	
	try {
		var divOfMenu = document.getElementById("menuItemClicked");
		divOfMenu.setAttribute('id', divOfMenu.idOriginal);
		divOfMenu.style.color = divOfMenu.style.backgroundColor;
		//divOfMenu.style.backgroundColor = divOfMenu.bgOriginal; //divOfMenu.style.color;			
		divOfMenu.style.background = divOfMenu.bgOriginal; //divOfMenu.style.color;			
	} catch(e) {}


	obj.idOriginal = obj.getAttribute('id');
	obj.setAttribute('id','menuItemClicked');

	var backgroundColor = getStyle(obj, 'color'); // obj.style.color;
	var color = getStyle(obj, 'background-color');
	var backgroundStyle = getStyle(obj, 'background');
	
	// console.log("bck:" + backgroundStyle + " color:" + color);
	obj.style.background = backgroundColor;
	if (color == 'transparent') color = 'white';
	obj.style.color = color;
	obj.bgOriginal = backgroundStyle;
	
	

	try {
		var imgs = obj.getElementsByTagName("img");
		for (var i = 0;imgs.length;i++)
		{
			alert(imgs[i].src);
		}

	} catch(e) {
	}
}

function getStyle(x,styleProp) {
	if (x.currentStyle)
	var y = x.currentStyle[styleProp];
	else if (window.getComputedStyle)
	var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
	return y;
}

function filterLightTint(channel, coef) {
	for(i=0; i <= 2; i++) {
		// iChannel = (i == 0) ? 2 : i-1;
		iChannel = i;

		channel[i] = 255 - Math.round((255-channel[iChannel]) * (coef));
	}
	return channel;
}

function subArticleInit(arg, maxChapter, maxchapterOrder, div, divPar, posX, posY, changeColorSubDir) {
	var url = "modules/list/subArticle.php" + arg ;
	var xhr_object = null;
    xhr_object = new XMLHttpRequest();
	xhr_object.open("POST", url, true);
    xhr_object.onreadystatechange = function() {
		// remplacer le input par une liste de suggestion
		if (xhr_object.readyState == 4) {
			//alert(xhr_object.responseText);
			subarticleVar[arg] = xhr_object.responseText;
		}
    }
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("&thisDiv=" + div + "&maxChapter=" + maxChapter + "&maxChapterOrder=" + maxchapterOrder);
}



