// POPUP

function openPopUp(url,width,height) {
	window.open(url,"","height="+height+",width="+width+",scrollbars=1,status=0");
}

// COOKIE

function setCookie(name, value, nodays) {
	var dt = new Date();
	dt.setTime(dt.getTime() + nodays*24*60*60*1000);
	var timest = dt.toGMTString();
	var strset = name+"="+value+";expires="+timest+";path=/";
	document.cookie = strset;
}
function getCookie(name) {
	var nameweq = name + "=";
	var cookarray = document.cookie.split(';');
	for (var i=0; i<cookarray.length; i++) {
		var cook = cookarray[i];
		while (cook.charAt(0) == ' ') cook = cook.substring(1, cook.length);
		if (cook.substring(0,nameweq.length) == nameweq) {
			return cook.substring(nameweq.length,cook.length);
		}
	}
	return "";
}

// SELECTION

var selection_count = 0;
function addToSelection(idann) {
	var cook = getCookie("SELECTION");
	var liste = cook.split('x');
	var foundb = false;
	var emptylist = true;
	for (var i=0; i<liste.length; i++) {
		var idfound = liste[i];
		if (idfound != "") emptylist = false;
		if (idfound == idann) foundb = true;
	}
	if (liste.length >= 30) {
		alert("La sélection ne peut pas contenir plus de 30 annonces");
		return false;
	}
	if (foundb) return false;
	if (!emptylist) {
		cook += "x";
		selection_count = liste.length + 1;
	}
	else {
		selection_count = 1;
	}
	cook += idann;
	setCookie("SELECTION", cook, 30);
	return true;
}
function removeFromSelection(idann) {
	var cook = getCookie("SELECTION");
	var newcook = "";
	var liste = cook.split('x');
	var listenb = 0;
	for (var i=0; i<liste.length; i++) {
		var idfound = liste[i];
		if (idfound != idann) {
			if (listenb) newcook += "x";
			listenb++;
			newcook += idfound;
		}
	}
	setCookie("SELECTION", newcook, 30);
	selection_count = listenb;
}
function toggleSelAnnSmall(idann) {
	var elem = document.getElementById("AS"+idann);
	var liens = elem.getElementsByTagName("A");
	var lien = null;
	for (var i=0; i<liens.length; i++)  {
		if (liens[i].id == "TOGGLE") lien = liens[i];
	}
	if (elem.className == "annonce_small") {
		if (addToSelection(idann)) {
			elem.className = "annonce_small_selected";
			lien.innerHTML = lien.getAttribute("TS");
		}
	}
	else if (elem.className == "annonce_small_alaune") {
		if (addToSelection(idann)) {
			elem.className = "annonce_small_alaune_selected";
			lien.innerHTML = lien.getAttribute("TS");
		}
	}
	else if (elem.className == "annonce_small_alaune_selected") {
		removeFromSelection(idann);
		elem.className = "annonce_small_alaune";
		lien.innerHTML = lien.getAttribute("TNS");
	}
	else {
		removeFromSelection(idann);
		elem.className = "annonce_small";
		lien.innerHTML = lien.getAttribute("TNS");
	}
	var elem = document.getElementById("SELECTION_COUNT");
	if (selection_count == 0) elem.innerHTML = "";
	else if (selection_count == 1) elem.innerHTML = "(1 annonce)";
	else elem.innerHTML = "(" + selection_count + " annonces)";
}

// CALENDAR

var revaecal_divptr = null;
var revaecal_valptr = null;
var revaecal_dtcur  = null;

function revaecal_minimize(valeur) {
	var ptr = document.getElementById("revaecalmax");
	ptr.innerHTML = "";
	if (valeur != "") revaecal_valptr.value = valeur;
}

function revaecal_displayMonth(month, year) {
	var ptr = document.getElementById("revaecalmax");
	var txt = "";
	var marray = new Array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
	var dtcur,dow,tmcur,i,j;
	txt += "<div style='background-color:white;border:solid 2px SteelBlue;padding:5px;font-family:Tahoma;font-size:11px;-moz-border-radius:5px;'>";
	txt += "<div><table width='156px' cellspacing='1' border='0'><tr>";
	i = month - 1;
	j = year;
	if (i==0) { i="12"; j=j-1; }
	txt += "<td width='9px' valign='center' align='center' style='background-color:LightSteelBlue;cursor:pointer;' onclick='javascript:revaecal_displayMonth("+i+","+j+")'>&lt;</td>";
	i = month + 1;
	j = year;
	if (i==13) { i="1"; j=j+1; }
	txt += "<td width='9px' valign='center' align='center' style='background-color:LightSteelBlue;cursor:pointer;' onclick='javascript:revaecal_displayMonth("+i+","+j+")'>&gt;</td>";
	txt += "<td align='center' style='font-weight:bold'>"+marray[month]+" "+year+"</td>";
	txt += "<td width='9px' align='right' onclick='javascript:revaecal_minimize(\"\")'>&nbsp;</td>";
	txt += "<td width='9px' valign='center' align='center' style='background-color:LightSteelBlue;cursor:pointer;' onclick='javascript:revaecal_minimize(\"\")'>x</td>";
	txt += "</tr></table></div>";
	txt += "<div align='center'><table>";
	txt += "<tr style='font-weight:normal;text-align:center;'><td>L</td><td>M</td><td>M</td><td>J</td><td>V</td><td>S</td><td>D</td></tr>";
	dtcur = new Date(month+"/01/"+year+" 12:00:00");
	dow = dtcur.getDay();
	if (dow==0) dow=7;
	dow--;
	txt += "<tr>";
	while (dow) { txt+="<td></td>"; dow--; }
	while (month == (dtcur.getMonth()+1)) {
		var colorcell = "LightSteelBlue";
		if (revaecal_dtcur.getFullYear() == dtcur.getFullYear() &&
		    revaecal_dtcur.getMonth() == dtcur.getMonth() &&
		    revaecal_dtcur.getDate() == dtcur.getDate() ) colorcell = "#ffc8c8";
		if ("en" == "fr") {
			txt += "<td onclick='revaecal_minimize(\""+(dtcur.getMonth()+1)+"/"+dtcur.getDate()+"/"+dtcur.getFullYear()+"\");' style='background-color:"+colorcell+";padding:1px 2px;text-align:right;cursor:pointer;'>"+dtcur.getDate()+"</td>";
		}
		else {
			txt += "<td onclick='revaecal_minimize(\""+dtcur.getDate()+"/"+(dtcur.getMonth()+1)+"/"+dtcur.getFullYear()+"\");' style='background-color:"+colorcell+";padding:1px 2px;text-align:right;cursor:pointer;'>"+dtcur.getDate()+"</td>";
		}
		if (dtcur.getDay()==0) txt += "</tr><tr>";
		tmcur = dtcur.getTime();
		dtcur = new Date(tmcur+86400*1000);
	}
	txt += "</tr>";
	txt += "</table></div>";
	txt += "</div>";
	ptr.innerHTML = txt;
}

function revaecal_maximize() {
	var strdate = revaecal_valptr.value;
	var day, month, year;
	var dt;
	if (strdate != "") {
		var tab = strdate.split('/');
		if (tab.length == 3) {
			if ("en" == "fr") {
				month = tab[0];
				day = tab[1];
			}
			else {
				month = tab[1];
				day = tab[0];
			}
			year = tab[2];
			if (year.length==2) year = "20" + year;
		}
		else if (tab.length == 2) {
			var dt = new Date();
			year = dt.getFullYear();
			if ("en" == "fr") {
				month = tab[0];
				day = tab[1];
			}
			else {
				month = tab[1];
				day = tab[0];
			}
		}
		else if (tab.length==1 && strdate.length==4) {
			var dt = new Date();
			year = dt.getFullYear();
			month = strdate.substring(2,4);
			day = strdate.substring(0,2);
		}
		else if (tab.length==1 && strdate.length==8) {
			year = strdate.substring(0,4);
			month = strdate.substring(4,6);
			day = strdate.substring(6,8);
		}
		else strdate = "";
	}
	if (month=="" || day=="" || year=="") strdate = "";
	if (strdate == "") {
		var dt = new Date();
		day = dt.getDate();
		month = dt.getMonth() + 1;
		year = dt.getFullYear();
	}
	strdate = "" + month + "/" + day + "/" + year + " 12:00:00";
	dt = new Date(strdate);
	revaecal_dtcur = dt;
	revaecal_displayMonth(dt.getMonth()+1, dt.getFullYear());
}

function revaecal_init() {
	var txt,ptr;
	revaecal_divptr = document.getElementById("revaecal");
	revaecal_valptr = document.getElementById(revaecal_divptr.getAttribute("date"));
	txt =  "<div id='revaecalmax' style='position:absolute;height:0;top:0;left:0;margin:0;padding:0;'></div>";
	txt += "<div style='cursor:pointer;display:inline;'><img onclick='javascript:revaecal_maximize();' src='../images/calend.gif'/></div>";
	revaecal_divptr.innerHTML = txt;
	revaecal_divptr.style.display = "inline";
	revaecal_divptr.style.position = "relative";
	revaecal_divptr.style.padding = "0";
	revaecal_divptr.style.margin = "0";
}

function revaecal_hide() {
	revaecal_divptr.innerHTML = "";
}

// AJAX

function XMLHttpRequest_Init()
{
	var handler = null;
	if (document.implementation && document.implementation.createDocument && false) {
		xmlDoc = document.implementation.createDocument("", "", null);
		handler = new Array(xmlDoc, 1);
	}
	else {
		try {
			xmlHttp = new XMLHttpRequest();
			handler = new Array(xmlHttp, 2);
		}
		catch (e) {
			try {
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
				handler = new Array(xmlHttp, 3);
			}
			catch (e) {}
		}
		if (handler) {
		}
	}
	if (handler == null) {
		alert ("Votre navigateur n'est pas supporté. Merci d'utiliser Firefox >= 1.5 ou IE >= 6.");
	}
	return handler;
}

function XMLHttpRequest_SendGet (handler, url, callback)
{
	if (handler[1] == 1) {
		handler[0].onload = callback;
		handler[0].load(url);
	}
	else {
		handler[0].onreadystatechange = callback;
		handler[0].open("GET", url, true);
		handler[0].send(null);
	}
}

function XMLHttpRequest_ResponseOK (handler)
{
	if (handler[1] == 1) {
		return true;
	}
	else {
		return (handler[0].readyState==4);
	}
}

function XMLHttpRequest_DataXML (handler)
{
	if (handler[1] == 1) {
		return handler[0];
	}
	else {
		return handler[0].responseXML;
	}
}

function XMLHttpRequest_urldecode (str) 
{
	str = unescape(str);
	str = str.replace(/\+/g, ' ');
	return str;
}

