/**
 * Tommy Bri�re filtration par pays 
 */
 
//var locationurl = "http://api.hostip.info/country.php";
var locationurl = "/geolocate.php";
var asyncXmlCallBackFunc = null; 
var payseurope = [
	"AL",
	"AD",
	"AM",
	"AT",
	"BY",
	"BE",
	"BA",
	"BG",
	"CH",
	"CY",
	"CZ",
	"DE",
	"DK",
	"EE",
	"ES",
	"FO",
	"FI",
	"FR",
	"GB",
	"GE",
	"GI",
	"GR",
	"HU",
	"HR",
	"IE",
	"IS",
	"IT",
	"LT",
	"LU",
	"LV",
	"MC",
	"MK",
	"MT",
	"NO",
	"NL",
	"PO",
	"RO",
	"RU",
	"SE",
	"SI",
	"SK",
	"SM",
	"TR",
	"UA",
	"VA"
]
 
/**
* http://www.devx.com/webdev/Article/28938/0/page/3
* url a appeler
* param�tres POST
* function a appeler quand c'est fini si on veut que ce soit async NOTE: un seul async a la fois est support�
**/
function asyncXmlCall(url, params, callBack) {
	var request;
	var ua = navigator.userAgent.toLowerCase();
	if (!window.ActiveXObject)
    	request = new XMLHttpRequest();
	else if (ua.indexOf('msie 5') == -1)
    	request = new ActiveXObject("Msxml2.XMLHTTP");
	else
    	request = new ActiveXObject("Microsoft.XMLHTTP");
	if (request.setTimeouts) {
		request.setTimeouts(3);//on ne tol�re pas que le call prenne plus de 3 secondes
	}
	if (callBack != null) {
		asyncXmlCallBackFunc = callBack;
		request.onreadystatechange=function(){
			if (request.readyState == 4 ) {
				if ((request.status >= 200 ) && ( request.status < 300 )) { 
					asyncXmlCallBackFunc(request); 
				}
			}
		}
		request.open("POST", url+params, true);
	} else {
		request.open("POST", url+params, false);
	}
	request.send(params);
	return request;
}
 
function geoLocate() {
	var geoloc = lireCookie("geolocate");
	if (geoloc && geoloc.length == 2) {
		validateCountry(geoloc);
	} else {
		asyncXmlCall(locationurl, "", onGeoLocate);
	}
}

/**
 * R�ception des informations de g�o localisation
 */
function onGeoLocate(request) {
	var country = request.responseText;
	validateCountry(country);
	//ecrireCookie("geolocate", country);
	var date = new Date();
	date.setTime(date.getTime()+(30*24*60*60*1000));//Expire dans 30 jours
	var cur_collection = "geolocate="+country+"; expires="+date.toGMTString()+"; path=/";// <-- Différence -->
	document.cookie = cur_collection;	
}

function validateCountry(country) {
	for (var i=0; i < payseurope.length; i++) {
		if (payseurope[i] == country) {
			//match
			onEnEurope();
			return;
		}
	}	
}

/**
 * Le visiteur est en europe
 */
function onEnEurope() {
	document.body.style.visibility="hidden";
	alert("Ce site est seulement disponible en Amérique.");
}