var xhr_obj = null; 
var map;
var geocoder;
function onpageload()
{
	$("#menu a").removeAttr("title");
}
function tips(target, obj, show)
{
	var text = document.getElementById(target);
	if(text)
	if(show)
	{
		var pos = findPos(obj)
		text.className = 'show tip';
		text.style.left = pos[0] + 'px';
		text.style.top = pos[1] + obj.offsetHeight + 'px' ;
	
	}
	else
	{
		text.className = 'hide';
	}
}

function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
	curleft = obj.offsetLeft
	curtop = obj.offsetTop
	while (obj = obj.offsetParent) {
		curleft += obj.offsetLeft
		curtop += obj.offsetTop
	}
}

return [curleft,curtop];

}
function stareval(value, id, size)
{
	xhr('do.php', 'stareval', '&val=' + value + '&id=' + id);	
	var s1 = document.getElementById('star1' + id);
	var s2 = document.getElementById('star2' + id);
	var s3 = document.getElementById('star3' + id);
	var s4 = document.getElementById('star4' + id);
	var s5 = document.getElementById('star5' + id);
	
	s1.src = "images/"+size+"staron.png";
	s2.src = "images/"+size+"staroff.png";
	s3.src = "images/"+size+"staroff.png";
	s4.src = "images/"+size+"staroff.png";
	s5.src = "images/"+size+"staroff.png";
	
	if(value >= 2) s2.src = "images/"+size+"staron.png";
	if(value >= 3) s3.src = "images/"+size+"staron.png";
	if(value >= 4) s4.src = "images/"+size+"staron.png";
	if(value == 5) s5.src = "images/"+size+"staron.png";	
}

function initialize() {
	geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(46.5, 3);
    var myOptions = {
      zoom: 5,
      navigationControl: true,
      scaleControl: true,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.HYBRID
    };
    map = new google.maps.Map(document.getElementById('map'), myOptions);
    if(document.forms[0].ville.value != 0)
    {
		setmap();
	}
}

function initsmallmap(coords) {
	geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(46.5, 3);
    var myOptions = {
      zoom: 5,
      navigationControl: true,
      scaleControl: true,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.HYBRID
    };
    
    map = new google.maps.Map(document.getElementById('smallmap'), myOptions);
	var arr = coords.split('#');
	if (geocoder && arr[0] != 0)
	{
		geocoder.geocode( { 'address': arr[3], latLng : new google.maps.LatLng(arr[1], arr[2])}, 
		function(results, status) 
		{
			if (status == google.maps.GeocoderStatus.OK)
			{
				map.setCenter(results[0].geometry.location);
				map.setZoom(14);
				var marker = new google.maps.Marker({
					map: map, 
					position: results[0].geometry.location
					});
			}
		});
	}
  
}

function setmap()
{
	var obj = document.getElementById('city');
	var ville = obj[obj.selectedIndex].value;
	var arr = ville.split('#');

 if (geocoder && arr[0] != 0) {
      geocoder.geocode( { 'address': arr[3], latLng : new google.maps.LatLng(arr[1], arr[2])}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          map.setCenter(results[0].geometry.location);
          map.setZoom(14);
          var marker = new google.maps.Marker({
              map: map, 
              position: results[0].geometry.location
          });
        } else {
        }
      });
    }
}


function setupCity(limit)
{
	var obj = document.getElementById('departement');
	var region = obj[obj.selectedIndex].value
	if(limit)
	{
		xhr('do.php', 'selectcitylimit', '&dep=' + region );	
	}
	else
	{
		xhr('do.php', 'selectcity', '&dep=' + region );
	}
}

function setupDepartement()
{
	var obj = document.getElementById('region');
	var region = obj[obj.selectedIndex].value
	xhr('do.php', 'selectdep', '&region=' + region );
}


function removeAllOptions(selectid)
{
	var obj = document.getElementById(selectid);
	
	if(obj) for( var i=obj.options.length-1;i>=0;i--)
	{
		obj.remove(i);
	}
}

function appendOption(selobj, value, text)
{
	var obj = document.createElement('option');
	obj.text = text;
	obj.value = value;
	try
	{
		selobj.add(obj, null); // standards compliant; doesn't work in IE
	}
	catch(ex)
	{
		selobj.add(obj); // IE only
	}
}

function parse_xhr()
{
	var xmlDoc = null;

	if(xhr_obj.readyState == 4)
	{				
		try //Internet Explorer
		{
			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async="false";
			xmlDoc.loadXML(xhr_obj.responseText);
		}
		catch(e)
		{
			var parser=new DOMParser();
			xmlDoc=parser.parseFromString(xhr_obj.responseText,"text/xml");
		}
		
		if(xmlDoc)
		{
			var tags  = xmlDoc.getElementsByTagName('selectdata')
			{	
				for(var j = 0; j < tags.length; j++)
				{
					removeAllOptions(tags[j].getAttribute('name'))
					var obj = document.getElementById(tags[j].getAttribute('name'));

					if(obj)
					{
						if(tags[j].childNodes.length == 0)
						{
							obj.disabled=true;
						}
						else	
						{
							for(var i = 0; i < tags[j].childNodes.length; i++)	
							{
								appendOption(obj, tags[j].childNodes[i].getAttribute('value'), tags[j].childNodes[i].childNodes[0].nodeValue);
								obj.disabled=false;
							}
						}
					}
				}
			}
			
			var tags = xmlDoc.getElementsByTagName('set');
			for(var i=0; i < tags.length; i++)
			{
				var obj = document.getElementById(tags[i].getAttribute('id'));
				if(obj)
				{
					removeNodes(obj);
					var node = document.createTextNode(tags[i].childNodes[0].nodeValue); 
					obj.appendChild(node);
				}
			}
				
			var tags = xmlDoc.getElementsByTagName('message');
			for(var i=0; i < tags.length; i++)
			{
				alert(tags[i].childNodes[0].nodeValue);
			}	
		}
		else
		{
			alert(xhr_obj.responseText);
		}
	}
}

function selectFill(selectid, selectdata)
{
	var obj = document.getElementById(selectid);
	if(obj && selectdata)
	{
		var count = 0;
		var text = '';

		var strtable = selectdata.split(';');
		removeAllOptions(selectid);
		 
		for(var i = 0; i < strtable.length - 1;i++)
		{
			text = strtable[i].split(':');
			appendOption(obj, text[0], text[1]);
			count++;
		}	
	}	
}


function getpostdata(id, option)
{
	var txt = "";
	
	var obj = document.getElementById(id);
	
	if(obj) for(var i=0; i < obj.elements.length; i++)
	{
		txt += obj.elements[i].name + "=" + obj.elements[i].value + '&';
	}
	else
	{
		txt = '&action=' + id;
		if(option) txt += option;
	}
	return txt;
}


function removeNodes(obj)
{
	if(obj) while(obj.firstChild) obj.removeChild(obj.firstChild);	
}

function xhr(request, id, option)
{
	if(window.XMLHttpRequest) xhr_obj = new XMLHttpRequest(); 
	else if(window.ActiveXObject) xhr_obj = new ActiveXObject("Microsoft.XMLHTTP"); 
	else return;

	if(xhr_obj)
	{
		var postdata = getpostdata(id, option);
	
		xhr_obj.onreadystatechange = parse_xhr;
		xhr_obj.open("POST", request, true); 
		xhr_obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr_obj.setRequestHeader("Content-length", postdata.length);
		xhr_obj.setRequestHeader("Connection", "close");
		xhr_obj.send(postdata); 
	}
}
function numbersonly(e, myfield)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
   return true;
   
   return false;
}



function isnumkey(evt)
	{
		var key = (evt.which) ? evt.which : event.keyCode;
		switch(key)
		{
			case 49:	// 0
			case 50:	// 1
			case 51:	// 2
			case 52: 	// 3
			case 53:	// 4
			case 54:	// 5	
			case 55:	// 6
			case 56:	// 7
			case 57:	// 8
			case 58:	// 9
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 37:	// left cursor
			case 39:	// right cursor
			case 8:		// backspace
			case 46:	// delete
			return;
		}
		return false;
}

function validfield(name, value)
{
	if(document.forms[0].elements[name].value == value) { document.forms[0].elements[name].focus(); (document.getElementById('field' + name)).className='highlight'; return false;}	
	(document.getElementById('field' + name)).className= null;
	return true;
}
function validsearch()
{
	(document.getElementById('text_start')).className=null;
	(document.getElementById('text_end')).className=null;
	
	if(document.forms[0].start.value == '') {(document.getElementById('text_start')).className='highlight'; document.forms[0].start.focus(); return false; }
	if(document.forms[0].end.value == '')  {(document.getElementById('text_end')).className='highlight'; document.forms[0].end.focus(); return false; }
}
function validform()
{
	alert(document.forms[0].do.value);
	if(!validfield('name', '')) return false;
	if(!validfield('firstname', '')) return false;
	if(!validfield('email', '')) return false;
	if(!validfield('phone', '')) return false;
	if(!validfield('pass', '')) return false;
	if(!validfield('title', '')) return false;
	if(!validfield('surface', '')) return false;
	if(!validfield('exterieur', '')) return false;
	if(!validfield('pieces', 0)) return false;
	if(!validfield('ville', 0)) return false;	
	if(!validfield('adresse', '')) return false;
	if(!validfield('content', '')) return false;
	if(!validfield('chambre', 0)) return false;
	if(!validfield('couchage', 0)) return false;
	return true;
}	

function emailjs(p1,p2,p3)
{
document.write('<a href="mai' + 'lto:' + p1 + '@' + p2 + '">');
document.write(p3 + '</a>');
}

function getcount()
{
	var req = '';

	for(var i=0; i < document.forms[0].elements.length; i++)
	{
		if(document.forms[0].elements[i].type == 'checkbox')
		{
			req += '&' + document.forms[0].elements[i].name + '=' + document.forms[0].elements[i].checked; 	
		}
		if(document.forms[0].elements[i].type == 'text')
		{
			req += '&' + document.forms[0].elements[i].name + '=' + document.forms[0].elements[i].value; 				
		}
		
		if(document.forms[0].elements[i].type == 'select-one' && document.forms[0].elements[i].disabled == false)
		{
			req += '&' + document.forms[0].elements[i].name + '=' + document.forms[0].elements[i].options[document.forms[0].elements[i].selectedIndex].value; 				
		}
		if(document.forms[0].elements[i].type == 'hidden')
		{
			req += '&' + document.forms[0].elements[i].name + '=' + document.forms[0].elements[i].value;
		}
	
	}
	xhr('do.php', 'search', req);	
}

