// JavaScript Document

var js_path = 'http://www.homeswaphome.fr/';

var global = this;
var start_marker = new Array();
var end_marker = new Array();

var hsh_menu = 0;
var hsh_select = -1;

var hsh_s_id = 0;
var hsh_s_titre = '';

var idf = 0;
var fade_op = 1;
var fade_op2 = 0;

function dofilter(where,rad){
	location = js_path+'index.php?/liste_annonces_echanges/'+where+'/'+rad;
}
function construct(){
	
	if(window.XMLHttpRequest) // FIREFOX
			return new XMLHttpRequest();
		else if(window.ActiveXObject) // IE
			return new ActiveXObject("Microsoft.XMLHTTP");
		else
			return(false);
}

function loadthis(fichier){ // synchrone
	xhr_object = construct();
	xhr_object.open("GET", js_path+fichier, false);
	xhr_object.send(null);
    if(xhr_object.readyState == 4) return(xhr_object.responseText);
    else return(false);
}
function ville_keypress(e){
	
	var e = window.event || e
	alert('kc:'+e.keyCode);
	
	if (ev.which) {
		var char = ev.which;
	}
	else {
		var char = ev.keyCode;
	}
	
	alert("Test:"+char);
}
function ville_search(textfield,dest,loader){
	
	document.getElementById(textfield).onkeydown = function(e){
		var e=window.event || e
		var keyunicode=e.charCode || e.keyCode	
		
		if(keyunicode == 38){ // up
			ville_over(hsh_select-1);
			hsh_menu = 1;
		}
		else if(keyunicode == 40){ // down
			ville_over(hsh_select+1);
			hsh_menu = 1;
		}
		else if(keyunicode == 13){ // validate
			ville_select(hsh_s_titre,textfield,dest,hsh_s_id);
			hsh_menu = 1;
		}
		else{
			hsh_menu = 0;	
		}
	}
	
	if(document.getElementById(textfield).value.length > 2 && hsh_menu == 0){
		document.getElementById(dest).innerHTML = '';
		xhr_object = construct();
		
		xhr_object.onreadystatechange = function(){
			if(this.readyState == 4 && this.status == 200){
				document.getElementById(dest).innerHTML = this.responseText;
				var reg = new RegExp("(px)", "g");
			
				px = parseInt(document.getElementById(textfield).style.width.replace(reg,''))+14; // padding left+right + border left+right
				document.getElementById(dest).style.width = px+'px';
				document.getElementById(dest).style.display = 'block';
			}
			
		};
		xhr_object.open("GET", js_path+'services/ville_service.php?textfield='+textfield+'&loader='+loader+'&dest='+dest+'&search='+document.getElementById(textfield).value, true);
		xhr_object.send(null);
	
	}
	
}
function ville_singlesearch(dest,sel){
	if(document.getElementById(dest).value.length > 2){

		xhr_object = construct();
		xhr_object.onreadystatechange = function(){
			if(this.readyState == 4 && this.status == 200){
				tk = this.responseText.split(';');
				if(tk[0] != null && tk[1] != null){
					document.getElementById(sel).value = tk[0];
					document.getElementById(dest).value = tk[1];
				}
			}
			
		};
		xhr_object.open("GET", js_path+'services/ville_service.php?mode=single&loader=station&search='+document.getElementById(dest).value, true);
		xhr_object.send(null);
	}
}
function nav_check(){
	
	NavName = navigator.appCodeName;
	NavVers = navigator.appVersion;
	Nav = NavName + " " + NavVers;
	
	pr = NavVers.split(';');
	tk = trim(pr[1]);
	
	m = tk.split('.');
	var reg = new RegExp("(MSIE)", "g");
	major = parseInt(m[0].replace(reg,''));
	
	if(major <= 6){ // --> IE 6.0 non supporté
		document.write('<div class="tab"><div align="center"><strong><span style="color:#FF0000">Vous utilisez Internet Explorer 6 ou inferieur</span></strong><br><br>Ce site n\'est pas compatible avec votre navigateur, nous vous encourageons à le mettre à jour,<br>ou à utiliser une alternative comme Firefox, Safari ou Google Chrome. <br>Merci de votre compréhension.</div></div>');
		
	}	
}
function ville_select(text,textfield,dest,id){
	document.getElementById(textfield).value = text;
	clear_search(dest);
	
	if(document.getElementById(textfield+'hid') != null){
		document.getElementById(textfield+'hid').value = id;
	}
	
	if(document.getElementById('map') != null){
		set_plot();
	}
}
function ville_over(h){
	
	if(document.getElementById('hshmn'+h) != null){
		for(i=0;i<10;i++){
			if(document.getElementById('hshmn'+i) != null){
				document.getElementById('hshmn'+i).className = 'itemcontainer';
			}
		}
	
		hsh_select = h;
		hsh_s_id = document.getElementById('villeid'+h).value;
		hsh_s_titre = document.getElementById('villetitre'+h).value;
		document.getElementById('hshmn'+h).className = 'itemcontainerhover';
	}
}
function clear_search(dest,textf){
	document.getElementById(dest).style.display = 'none';
	document.getElementById(dest).innerHTML = '';
	
	/*if(textf != null){
		ville_singlesearch(textf,textf+'hid');
	}*/
	
	hsh_select = -1;
	hsh_menu = 0;
	hsh_s_id = 0;
	hsh_s_titre = '';
}
function getgps(id){
	var gps = Array();
	res = loadthis('services/ville_service.php?mode=gps&id='+id);
	gps = res.split(';');
	return gps;
}
function set_plot(){
	var start = document.getElementById('startedit').value;
	var end = document.getElementById('endedit').value;
	var start_id = document.getElementById('startedithid').value;
	var end_id = document.getElementById('endedithid').value;
	
	map.clearOverlays();
	
	var start_gps = Array();
	var end_gps = Array();
	start_gps = getgps(start_id);
	end_gps = getgps(end_id);
	
	if(start != '' && start_gps.length != 2){ // pas de coord -> on tente le géocode
		geocode(start,"start");
	}
	else if(start_gps.length == 2){  // on a les coord GPS
		naturalcode(start_gps,"start");
	}
	
	if(end != '' && end_gps.length != 2){
		geocode(end,"end");
	}
	else if(end_gps.length == 2){
		naturalcode(end_gps,"end");
	}
	
	
	if(start != '' && end != '' && start_gps.length != 2 && end_gps.length != 2){
		setDirections(start, end, 'fr');
	}
	else if(start_gps.length == 2 && end_gps.length == 2){
		setDirections(new GLatLng(start_gps[0],start_gps[1]), new GLatLng(end_gps[0],end_gps[1]), 'fr');
	}
	
}
function naturalcode(gps,type){
	
	var Icon = new GIcon();
    Icon.iconSize = new GSize(32, 32);
	Icon.iconAnchor = new GPoint(16,16)  
		
	if(type == "start"){
		Icon.image = "images/start.png";
	}
	else{
		Icon.image = "images/end.png";
	}

	var opt;
	opt = {};  
	opt.icon = Icon; 

	var marker = new GMarker(new GLatLng(gps[0],gps[1]), opt);
	map.addOverlay(marker);
	
}
function geocode(address, type){
	geocoder.getLatLng(address, function(point) {
      if (!point) {
        alert(address + " not found");
      } else {
		
		var Icon = new GIcon();
    	Icon.iconSize = new GSize(32, 32);
		Icon.iconAnchor = new GPoint(16,16)  
		
		if(type == "start"){
			Icon.image = js_path+"images/start.png";
		}
		else{
			Icon.image = js_path+"images/end.png";
		}

		var opt;
		opt = {};  
	 	opt.icon = Icon; 

        var marker = new GMarker(point, opt);
        map.addOverlay(marker);

      }
    }
  );
	
}
function setDirections(fromAddress, toAddress, locale) {
	
	gdir = new GDirections();
	
	GEvent.addListener(gdir, "load", function(){
		
		var polyline = gdir.getPolyline();
		map.addOverlay(polyline);
		
		dist = gdir.getDistance();
		m = dist['meters'];
		
		bounds = gdir.getBounds();
		vs = new GSize(350,230);
		
		zoom = map.getBoundsZoomLevel(bounds, vs);
		map.setCenter(bounds.getCenter(),zoom);

		
 	});

	gdir.load("from: " + fromAddress + " to: " + toAddress,{ "locale": "fr", "getPolyline": true, "preserveViewport": false });
}
function dologin(login,pass){
	res = loadthis('box.php?mode=login&login='+login+'&pass='+pass);
	if(res != 'OK'){
		boxloader('box.php?mode=login&login='+login+'&pass='+pass);
	}
	else{
		location='index.php?/mon_espace';
	}
}
function dosearch(from,to){
	
	if(from == ''){
		alert('Merci de préciser votre lieu de résidence');
		document.getElementById('startedit').focus();
	}
	else if(from != '' && to == ''){
		alert('Merci de préciser votre lieu de travail');
		document.getElementById('endedit').focus();
	}
	else{
		boxloader('box.php?mode=search&from='+from+'&to='+to);
	}
}
function doregsearch(from,to){ // requete de recherche asynchrone (lent)
	
	xhr_object = construct();
	xhr_object.onreadystatechange = function(){
		if(this.readyState == 4){
			if(this.status == 200){
				clearbx();
				register_step('2');
			}
			else{
				clearbx();
				alert('Erreur lors de la recherche');
			}
		}
	};
	xhr_object.open("GET", 'services/search_service.php?mode=search&start='+from+'&stop='+to, true);
	xhr_object.send(null);
}
function dorealsearch(from,to){ // requete de recherche asynchrone (lent)
	
	xhr_object = construct();
	xhr_object.onreadystatechange = function(){
		if(this.readyState == 4){
			if(this.status == 200){
				clearbx();
				location = 'index.php?/resultats';
			}
			else{
				clearbx();
				alert('Erreur lors de la recherche');
			}
		}
	};
	xhr_object.open("GET", 'services/search_service.php?mode=search&start='+from+'&stop='+to, true);
	xhr_object.send(null);
}
function disconnect(){
	loadthis('services.php?mode=disconnect');	
	location = 'index.php';
}
function switchfade(obj,obj2){ // permuute deux objet avec une transition douce
	
	if(fade_op > 0){
		fade_op = fade_op-0.1;
		obj.style.opacity = fade_op;
	}
	else{
		obj.style.display = 'none';
		obj2.style.display = 'block';
		if(fade_op2 < 1){
			fade_op2 = fade_op2+0.1;
			obj2.style.opacity = fade_op2;
		}
		else{
			fade_op = 1;
			fade_op2 = 0;
			clearInterval(idf);
			idf = 0;
		}
	}
}
function regme(){
	boxloader('box.php');
}
function printSelection(node){

  var content=node.innerHTML
  var pwin=window.open('','print_content','width=100,height=100');

  pwin.document.open();
  pwin.document.write('<html><body onload="window.print()">'+content+'</body></html>');
  pwin.document.close();
 
  setTimeout(function(){pwin.close();},1000);

}
