var xmlHttp;
var id;
var javascript;
var element;
var evt;
var imgbrowser = new Image(32,32);
imgbrowser.src = "http://www.justnewmusic.com/images/horloge.gif";

document.onmousedown = mouseDown;
document.onmouseover = mouseDown;
document.onmouseout = mouseDown;
document.onmousemove = mouseDown;

function mouseDown(ev)
{
	ev = ev || window.event;
	evt = mouseCoords(ev);
}

function mouseCoords(ev)
{
	if(ev.pageX || ev.pageY)
	{
		return {x:ev.pageX, y:ev.pageY, w:window.innerWidth, h:window.innerHeight, clX:ev.clientX, clY:ev.clientY};
	}

	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop,
		w:document.body.clientWidth, h:document.body.clientHeight,
		clX:ev.clientX, clY:ev.clientY
	};
}

function createXMLHttpRequest()
{
	if(window.ActiveXObject)
	{
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if(window.XMLHttpRequest)
	{
		xmlHttp = new XMLHttpRequest();
	}
}

function startRequest(element, page)
{
	id = element;
	if (startRequest.arguments.length==3) javascript = startRequest.arguments[2];

	var opacity = 20;
	var object;
	for (i in id.split("|"))
	{
		//opacity(id.split("|")[i], 100, 30, 500);
		//document.getElementById(id.split("|")[i]).style.filter = "Alpha(Opacity=20)"; //"gray()";
		object = document.getElementById(id.split("|")[i]).style;
		//object.opacity = (opacity/100);
		//object.MozOpacity = (opacity/100);
		//object.KhtmlOpacity = (opacity/100);
		object.filter = "alpha(opacity=" + opacity + ")";
	}

	if (document.getElementById('imgsable')) document.getElementById('imgsable').parentNode.removeChild(document.getElementById('imgsable')); 
	var img = document.createElement('img');
	img.id = 'imgsable';
	img.src = imgbrowser.src;
	img.style.position = 'absolute';
	img.style.zIndex = 99;
	img.style.left = (evt.x - img.width)+'px';
	img.style.top = (evt.y - img.height)+'px';
	document.body.appendChild(img);

	createXMLHttpRequest();
	xmlHttp.onreadystatechange = handelStateChange;

	var Method = "GET";
	var argv = startRequest.arguments;
	if (argv.length > 2) Method = argv[2];
	if (argv.length > 3) Corps = argv[3];

	if (Method=="GET")
	{
		xmlHttp.open("GET", page, true);
		xmlHttp.send(null);
	}
	else if (Method=="POST")
	{
		xmlHttp.open("POST", page, true);
		//xmlHttp.setRequestHeader('Content-Type', 'text/xml; charset=ISO-8859-1');
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.send(Corps);
	}
}

function handelStateChange_Text()
{
	if(xmlHttp.readyState==4)
	{
		if(xmlHttp.status==200)
		{
			if(id) document.getElementById(id).innerHTML = xmlHttp.responseText;
		}
	}
}


function handelStateChange()
{
	if(xmlHttp.readyState==4)
	{
		if(xmlHttp.status==200)
		{
			var textDoc = xmlHttp.responseText;
			if(id.split("|").length > 1)
			{
				for (i in id.split("|"))
				{
					var tagName = id.split("|")[i];
					//alert('tagName 1: '+tagName);
					var masc = new RegExp("<"+tagName+"(?:.+?)*>([\\W|\\w]+?)<\\/"+tagName+">", "m");
					var result = textDoc.match(masc);
					if(id.split("|")[i])
					{
						Element = document.getElementById(id.split("|")[i]);
						Element.innerHTML = RegExp.$1;
						Element.style.display = "";
					}
				}

				//var xmlDoc = xmlHttp.responseXML;
				//var elementNode = xmlDoc.getElementsByTagName(id.split("|")[1])[0];
				//alert(elementNode.getNodeValue);
				//document.getElementById(id.split("|")[0]).innerHTML = elementNode.toString();
			}
			else if(id)
			{
				Element = document.getElementById(id);
				Element.innerHTML = textDoc;
				Element.style.display = "";

				if(javascript)
				{
					var EL = document.getElementById(javascript).value.split('|');
					if(EL)
					{
						cond  = false;
						document.getElementById(EL[0]).innerHTML = afficherTree(EL[1], EL[2]);
						document.strfunction += "hideDropDown('"+EL[3]+"');";
						document.getElementById(EL[3]).style.visibility='hidden';
					}
					javascript = '';
				}
			}

			var opacity = 100;
			var object;
			for (i in id.split("|"))
			{
				//opacity(id.split("|")[i], 100, 30, 500);
				//document.getElementById(id.split("|")[i]).style.filter = "Alpha(Opacity=20)"; //"gray()";
				object = document.getElementById(id.split("|")[i]).style;
				//object.opacity = (opacity/100);
				//object.MozOpacity = (opacity/100);
				//object.KhtmlOpacity = (opacity/100);
				object.filter = "alpha(opacity=" + opacity + ")";
			}

			document.body.removeChild(document.body.lastChild);
		}
	}
}


function clearPreviousResult()
{
	var header = document.getElementById("header");
	if(header.hasChildNodes())
	{
		header.removeChild(header.childNodes[0])
	}
}


var indice = 0;
var index = 0;

function ttt(x)
{
	//alert("source 2 : "+x.nodeName);

	indice++;
	var newatt;
	var newelm;

	if(x.nodeType==1) newelm = document.createElement(x.nodeName);
	else newelm = document.createElement("text");

	if(x.nodeType==1&&x.hasChildNodes())
	{
		for (var i=0;i<x.childNodes.length;i++)
		{
			newelm.appendChild(ttt(x.childNodes[i]));
		}
	}

	indice--;
	if(indice==0)
	{
		var td = document.createElement('td');
		td.innerHTML = '<INPUT TYPE=CHECKBOX NAME="id'+(index)+'" value='+x.id+'>';
		td.innerHTML += '<INPUT TYPE=hidden NAME="element'+(index)+'" value='+x.id+'>';
		newelm.appendChild(td);
		index++;
	}

	if(x.nodeType==1 && x.attributes.length>0)
	{
		for(var i=0;i<x.attributes.length;i++)
		{
			if (x.attributes[i].specified)
			{
				newatt = document.createAttribute(x.attributes[i].nodeName);
				newatt.value = x.attributes[i].nodeValue;
				if(x.attributes[i].nodeValue) newelm.setAttributeNode(newatt);
			}
		}
	}

	if(x.nodeType==3)
	{
		newtext = document.createTextNode(x.nodeValue);
		return newtext;
	}

	return newelm;
}


var classElement = "gridrow1";
var numberelement = 0;
function appendElement(source, target)
{
	var existingobject = document.getElementById(target);
	if (existingobject.childNodes.length>0&&numberelement==0)
		existingobject.removeChild(existingobject.childNodes[0]);

	if (existingobject.childNodes.length>19) return;
	for (var i=0;i<existingobject.childNodes.length;i++)
	{
		if(existingobject.childNodes[i].nodeType==1&&existingobject.childNodes[i].id==source.id) return;
	}

	var clone = source.cloneNode(true);
	var clone2 = clone.getElementsByTagName('TD');
	clone2[0].removeChild(clone2[0].firstChild);
	//clone.childNodes[1].removeChild(clone.childNodes[1].firstChild);
	var newtext = document.createTextNode(existingobject.childNodes.length +1);
	clone2[0].appendChild(newtext);
	//clone.childNodes[1].appendChild(newtext);

	var td = document.createElement('td');
	//td.innerHTML = '<INPUT TYPE=CHECKBOX NAME="id'+(index)+'" value='+source.id+'>';
	td.innerHTML = '<INPUT TYPE=hidden NAME="produit'+(index)+'" value='+source.id+'><a href="javascript:removeElement('+source.id+',\''+target+'\');">X</a>';
	clone.appendChild(td);

	if (classElement=="gridrow1") classElement = "gridrow2";
	else classElement = "gridrow1";

	clone.setAttribute("class", classElement);
	clone.setAttribute("onmouseout", "this.className='"+classElement+"';");
	clone.removeAttribute("onclick");

	numberelement++;
	existingobject.appendChild(clone);
}


function removeElement(element, target)
{
	var existingobject = document.getElementById(target);
	existingobject.removeChild(document.getElementById(element));

	for (var i=0;i<existingobject.childNodes.length;i++)
	{
		var Elements = existingobject.childNodes[i].getElementsByTagName('TD');
		Elements[0].removeChild(Elements[0].firstChild);
		//alert(existingobject.childNodes[i].childNodes[1].nodeName);
		//existingobject.childNodes[i].childNodes[1].removeChild(existingobject.childNodes[i].childNodes[1].firstChild);
		var newtext = document.createTextNode(i +1);
		Elements[0].appendChild(newtext);
		//existingobject.childNodes[i].childNodes[1].appendChild(newtext);
	}
}

function removeListe(target)
{
	var existingobject = document.getElementById(target);
	j = existingobject.childNodes.length;
	for (var i=0;i<j;i++)
	{
		//alert(existingobject.childNodes[i].nodeName);
		existingobject.removeChild(existingobject.childNodes[0]);
	}
}

function sendRequet(element, target, page)
{
	var existingobject = document.getElementById(target);
	if(existingobject.childNodes.length<1) return;
	page += "&numberelement="+existingobject.childNodes.length;
	for (var i=0;i<existingobject.childNodes.length;i++)
	{
		name = existingobject.childNodes[i].getAttributeNode("name").value;
		page += "&"+name+(i+1)+"="+existingobject.childNodes[i].id;
	}
	//alert(page);
	startRequest(element, page);
}

function sendSimpleRequest(element, target, page)
{
	var form = document.getElementsByName(target)[0];
	Element = document.getElementById(element);
	if(form.nom.value==""||form.nom.value==" "||form.nom.value=="Votre nom")
	{
		Element.innerHTML = formatText("Veuillez inscrire Votre Nom, S.V.P");
		Element.style.display = "";
		form.nom.focus();
		return;
	}

	if(form.comment.value==""||form.comment.value==" ")
	{
		Element.innerHTML = formatText("Veuillez ecrir un commentaire, S.V.P");
		Element.style.display = "";
		form.comment.focus();
		return;
	}

	if(form.nom.value) page += "&nom="+form.nom.value;
	//if(form.email.value) page += "&email="+form.email.value;
	if(form.comment.value) page += "&comment="+form.comment.value;
	//alert(page);
	startRequest(element, page);
}


function formatText(text)
{
	return '<div element="commentaireeffectue" style="background-color:#ff0000;color:#ffffff;text-align:center;PADDING:3px">'+text+'</div>';
}

var imgArchive = new Array();
var imgChoose = new Image();
imgChoose.src = '../fr/images/vote3.gif';
function changevote(element, ordre, Indice)
{
	var object = element.parentNode.parentNode;
	if(object.childNodes.length<1) return;
	var indice = 0;
	for (var i=0; i<object.childNodes.length; i++)
	{
		if(object.childNodes[i].nodeType==1)
		{
			if(indice>=ordre) return;
			var tabElement = object.childNodes[i].childNodes;
			for (var j=0; j<tabElement.length; j++)
			{
				if(tabElement[j].nodeName.toLowerCase()=='img')
				{
					var newatt = document.createAttribute('src');
					if(Indice==3)
					{
						imgArchive[indice] = tabElement[j].src;
						newatt.value = imgChoose.src;
					}
					else
						newatt.value = imgArchive[indice];

					tabElement[j].setAttributeNode(newatt);
				}
			}
			indice++;
		}
	}
}


function addMails(element, number)
{
	alert(1);
	var existingobject = document.getElementById(element);
	alert(2);
	var j = existingobject.childNodes.length;
	alert(3);
	alert('j : '+j);
	alert('number : '+number);
	if (j>10||(number<2&&j==1)||number==j) return;
	else if (j>number)
	{
		for (var i=number;i<j;i++)
		{
			//alert(existingobject.childNodes[i].nodeName);
			existingobject.removeChild(existingobject.childNodes[number]);
		}
		return;
	}
	alert(4);

	var source = existingobject.childNodes[0];
	alert(source.innerHTML);
	for (i=0 ;i<number - j;i++)
	{
		alert(5);
		var clone = source.cloneNode(true);
		alert(5);
		clone.childNodes[1].removeChild(clone.childNodes[0].firstChild);
		alert(5);
		alert(clone.innerHTML);
		alert(5);
		var newtext = document.createTextNode('Email '+(existingobject.childNodes.length +1));
		clone.childNodes[0].appendChild(newtext);
		clone.childNodes[1].firstChild.removeAttribute("name");
		clone.childNodes[1].firstChild.setAttribute("name", 'Email '+(existingobject.childNodes.length +1));
		existingobject.appendChild(clone);
	}
}

function checkForm(targetmessage, form)
{
	var formobject = form; //document.getElementsByName(form)[0];
	for (var i=0;i<formobject.elements.length;i++)
	{
		element = formobject.elements[i];
		if (element.type!='submit'&&element.type!='reset')
		{
			if(element.title&&!testElementForm(element, targetmessage))
				return false;
		}
	}

	var Elementtarget = document.getElementById(targetmessage);
	Elementtarget.innerHTML = formobject.title;
	Elementtarget.style.display = "";
	return true;
}

function sendForm(target, targetmessage, form, page)
{
	var formobject = document.getElementsByName(form)[0];
	var page = formobject.action;
	var corps = "";
	for (var i=0;i<formobject.elements.length;i++)
	{
		element = formobject.elements[i];
		if (element.type!='submit'&&element.type!='reset'&&element.submit!='no'&&element.name)
		{
			if(element.title&&!testElementForm(element, targetmessage))
				return;
			else if ((element.type=="checkbox"||element.type=="radio")&&element.checked)
				corps += "&"+element.name+"="+element.value;
			else if (element.type!="checkbox"&&element.type!="radio")
				corps += "&"+element.name+"="+element.value;
		}
	}

	var Elementtarget = document.getElementById(targetmessage);
	Elementtarget.innerHTML = formobject.title;
	Elementtarget.style.display = "";
	if (!target) target = targetmessage;
	//alert(corps);
	//alert(page);
	startRequest(target, page, "POST", corps);
}

function testElementForm(element, targetmessage)
{
	var type = 'text';
	var exception = '';
	var message = element.title.split('|')[0].toLowerCase(); //'<span style="background-color:#ff0000;color:#ffffff;PADDING:3px">'+element.title.split('|')[0].toLowerCase()+'</span>';
	if(element.title.split("|").length > 2)
		exception = element.title.split("|")[2];
	if(element.title.split("|").length > 1)
		type = element.title.split("|")[1].toLowerCase();

	var Elementtarget = document.getElementById(targetmessage);
	if(type=='numeric'&&(!element.value&&!is_numeric(element.value))) Elementtarget.innerHTML = message;
	else if(type=='text'&&(element.value==""||element.value==" "||(exception&&element.value==exception))) Elementtarget.innerHTML = message;
	else if(type=='mail'&&(element.value.indexOf("@") == -1 ||element.value.indexOf(".") == -1))
		Elementtarget.innerHTML = message; //"Veuillez inscrire l'e-mail correctement, S.V.P";
	else return true;

	Elementtarget.style.display = "";
	element.focus();
	return false;
}


function is_numericElementForm(expression)
{
	if (expression.length==0) return(false);
	var nums = "0123456789";
	for (var n=0; n < expression.length; n++)
	{
		if(nums.indexOf(expression.charAt(n))==-1) return(false);
	}
	return(true);
}


function bookmark(url,title)
{
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4))
	{
		window.external.AddFavorite(url,title);
	}
	else if (navigator.appName == "Netscape")
	{
		window.sidebar.addPanel(title,url,"");
	}
	else
	{
		alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
	}
}

function getPlayList(source)
{
	var existingobject = document.getElementById(source);
	var id = '';
	//var numberelement = 0;
	for (var i=0;i<existingobject.childNodes.length;i++)
	{
		if(existingobject.childNodes[i].nodeType==1&&existingobject.childNodes[i].id)
		{
			if(existingobject.childNodes[i].nodeType==1&&existingobject.childNodes[i].id) id += '^'+existingobject.childNodes[i].id;
			//numberelement++;
			//id += '&'+element+(i+1)+'='+existingobject.childNodes[i].id;
		}
	}
	//alert(id.substring(1));
	if(id.length>0) return id.substring(1);
	//if(id.length>0&&numberelement>0) id += '&numberelement='+numberelement;
	//alert(id);
	return id;
}


function displayElement(element, URL)
{
	var firstdiv = (document.getElementById(element) ? document.getElementById(element) : null);
	if (firstdiv) firstdiv.parentNode.removeChild(firstdiv);

	var ev = window.event;
	if(ev.pageX || ev.pageY) {x = ev.pageX, y = ev.pageY}
	else
	{
		x = ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y = ev.clientY + document.body.scrollTop  - document.body.clientTop
	}

	var div = document.createElement('div');
	div.id = element;
	div.style.backgroundColor = '#E7DFBD'; //yellow";
	div.style.padding = '20px';
	div.style.position = 'absolute';
	div.style.zIndex = 99;
	div.style.width = '500px';
	//div.style.height = '280px';
	div.style.border = '#000000 2px solid';
	div.style.left = (x -500) + 'px';
	div.style.top = y+'px';
	document.body.appendChild(div);
	//alert('element : '+element+' , URL : '+URL);

	startRequest(element, URL);
}

	function zoomElement(element)
	{
		var elzoom = (document.getElementById('elzoom') ? document.getElementById('elzoom') : null);
		if (elzoom) elzoom.parentNode.removeChild(elzoom);

		var div = document.createElement('div');
		div.id = 'elzoom';
		div.onmouseout = reduceElement;
		div.innerHTML = element.innerHTML;
		div.style.position = 'absolute';
		div.style.zIndex = 99;
		div.style.zoom = '200%';
		//div.style.width = '348px';
		//div.style.height = '280px';
		div.style.border = 'red 2px solid';

		if (evt.w - evt.clX < 348) 
			div.style.left = (evt.x -(348 -(evt.w - evt.clX))) + 'px';
		else
			div.style.left = (evt.x -2) + 'px';

		if (evt.h - evt.clY < 280) 
			div.style.top = (evt.y -(280 - (evt.h - evt.clY))) + 'px';
		else
			div.style.top = (evt.y -2) + 'px';

		document.body.appendChild(div);
	}

	function reduceElement(e)
	{
		if (!e) var e = window.event;	
		var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
		if (isZoomElement(reltg)) return; //(reltg.id=='elzoom') return;
		var elzoom = (document.getElementById('elzoom') ? document.getElementById('elzoom') : null);
		if (elzoom) elzoom.parentNode.removeChild(elzoom);
	}

	function isZoomElement(el)
	{
		if (el.id=='elzoom') return true;
		else if(el.parentElement) return isZoomElement(el.parentElement);
	}

/*
			if(element.message) //elementtotest.split("|").length > 0)
			{
				for (var j in elementtotest.split("|"))
				{
					itemelementtotest = elementtotest.split("|")[j].toLowerCase();
					item = itemelementtotest.split(",")[0].toLowerCase();
					if(itemelementtotest.split(",").length > 1)
						type = itemelementtotest.split(",")[1].toLowerCase();
					else
						type = 'text';

					if(formobject.elements[i].name.toLowerCase()==item&&!testElementForm(element, target, type)) return;
					else if(formobject.elements[i].name.toLowerCase()==item)
					{
						page += "&"+formobject.elements[i].name+"="+formobject.elements[i].value;
						break;
					}
				}
			}
			else page += "&"+formobject.elements[i].name+"="+formobject.elements[i].value;
*/