//	menu
var current_menu = 0;
function show_menu(menu_id)
{
	menu_ct();
	for(var i = 0; i < 10; i++)
	{
		if(document.getElementById('submenu_'+i))
		{
			document.getElementById('submenu_'+i).style.display = 'none';
		}
	}
	if(document.getElementById('submenu_'+menu_id))
		document.getElementById('submenu_'+menu_id).style.display = 'block';
}
var menu_timeout = null;
function hide_menu(menu_id)
{
	menu_ct();
	if(document.getElementById('submenu_'+menu_id))
		menu_timeout = setTimeout("document.getElementById('submenu_'+"+menu_id+").style.display = 'none'", 750);
}
function menu_ct()
{
	if(menu_timeout)
	{
		clearTimeout(menu_timeout);
	}
}

//	container type de vehicules
var type_vehicules_y = 0;
var container_type_vehicules = null;
function show_type_vehicules(container_id, e)
{
	type_vehicules_ct();

	// Cacher les autres div
	var footer_links = document.getElementsByTagName('DIV');
	if(footer_links.length > 1)
	{
		for(var i = 0; i < footer_links.length ;  i++)
		{
			if(footer_links[i].className == 'footer_links' && footer_links[i] != container_id)
			{
				document.getElementById(footer_links[i].id).style.display = 'none';
			}
		}
	}


	container_type_vehicules = document.getElementById(container_id);
	container_type_vehicules.style.display = 'block';
	if(e)
	{
	    if( e.pageX != undefined){ // gecko, konqueror,
	        container_type_vehicules._x = e.pageX;
	        container_type_vehicules._y = e.pageY;
	    }else if(event != undefined && event.x != undefined && event.clientX == undefined){ // ie4 ?
	        container_type_vehicules._x = event.x;
	        container_type_vehicules._y = event.y;
	    }else if(e.clientX != undefined ){ // IE6,  IE7, IE5.5
	        if(document.documentElement){
	            container_type_vehicules._x = e.clientX + ( document.documentElement.scrollLeft || document.body.scrollLeft);
	            container_type_vehicules._y = e.clientY + ( document.documentElement.scrollTop || document.body.scrollTop);
	        }else{
	            container_type_vehicules._x = e.clientX + document.body.scrollLeft;
	            container_type_vehicules._y = e.clientY + document.body.scrollTop;
	        }
	    }else{
	        container_type_vehicules._x = 0;
	        container_type_vehicules._y = 0;
	    }
	    container_type_vehicules.style.top = (container_type_vehicules._y - (container_type_vehicules.offsetHeight + 15)) + 'px';
	    container_type_vehicules._x -= (container_type_vehicules.offsetWidth + 100);
	    while(container_type_vehicules._x + container_type_vehicules.offsetWidth + 100 > screen.availWidth)
	    {
	    	container_type_vehicules._x -= 50;
	    }
		//container_type_vehicules.style.left = container_type_vehicules._x - (container_type_vehicules.offsetWidth + 100) + 'px';
		container_type_vehicules.style.left = container_type_vehicules._x + 'px';
    }
}

var type_vehicules_timeout = null;
function hide_type_vehicules(container_id)
{
	type_vehicules_ct();
	if(document.getElementById(container_id))
		type_vehicules_timeout = setTimeout("document.getElementById('"+container_id+"').style.display = 'none'", 550);

}
function type_vehicules_ct()
{
	if(type_vehicules_timeout)
		clearTimeout(type_vehicules_timeout);
}

//	autocompletion
var autocomplete_values = new Array();
function autocomplete_init(classname, values_array)
{
	autocomplete_values = values_array;
	var inputs = document.getElementsByTagName( 'INPUT' )
	for( var i = 0; i < inputs.length; i ++ )
	{
		if( inputs[i].type.toLowerCase() == 'text' && inputs[i].className == classname)
		{
			if( document.attachEvent )
			{
				inputs[i].attachEvent( 'onkeyup', autocomplete )
			}
			else if( document.addEventListener )
			{
				inputs[i].addEventListener( 'keyup', autocomplete, false )
			}
		}
	}
}

function autocomplete(ev)
{
	ev = ( ev != null ) ? ev : window.ev
	if( ev.keyCode == 16 || ev.keyCode == 13 ||ev.keyCode == 46)
		return;

	var element = ( ev.srcElement ) ? ev.srcElement : ev.originalTarget
	var value = element.value.toLowerCase()
	if( ev.keyCode == 8 )
		value = value.substring( 0, value.length - 1 )
	if( value.length < 1 )
		return;
	for( var i = 0; i < autocomplete_values.length; i++ )
	{
		item = autocomplete_values[i];
		if( item.toLowerCase().indexOf( value, 0 ) == 0 && item.length > value.length )
		{
			element.value = autocomplete_values[ i ]
			if( element.createTextRange && !window.opera)
			{
				hRange = element.createTextRange()
				hRange.findText( autocomplete_values[ i ].substr( value.length ) )
				hRange.select()
			}
			else
			{
				element.setSelectionRange( value.length, item.length )
			}
			return;
		}
	}
}
//	trim
function trim ( str ) {
	var whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
    for (var i = 0; i < str.length; i++) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
		str = str.substring(i);
		break;
		}
	}
	for (i = str.length - 1; i >= 0; i--) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(0, i + 1);
			break;
    	}
	}
	return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}
// explode
function explode( delimiter, string, limit ) {
    var emptyArray = { 0: '' };

    // third argument is not required
    if ( arguments.length < 2
        || typeof arguments[0] == 'undefined'
        || typeof arguments[1] == 'undefined' )
    {
        return null;
    }

    if ( delimiter === ''
        || delimiter === false
        || delimiter === null )
    {
        return false;
    }

    if ( typeof delimiter == 'function'
        || typeof delimiter == 'object'
        || typeof string == 'function'
        || typeof string == 'object' )
    {
        return emptyArray;
    }

    if ( delimiter === true ) {
        delimiter = '1';
    }

    if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        // support for limit argument
        var splitted = string.toString().split(delimiter.toString());
        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;
    }
}
// préparation objet pour l'AJAX
var xhr;
try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
catch (e)
{
	try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
	catch (e2)
	{
		try {  xhr = new XMLHttpRequest();     }
		catch (e3) {  xhr = false;   }
	}
}

// Permet de savoir si un champ a été correctement rempli
function check_content(element, type)
{
	var not_empty = false;
	switch(type)
	{
		case 'email' :
			var reg = /^[\w\-]+(\.[\w\-]+)*@[\w\-]+(\.[\w\-]+)*\.[\w\-]{2,}$/;
			not_empty = reg.test(trim(element.value));
		default :
			not_empty = (trim(element.value) != '');
	}
	return not_empty;
}
// Vérifier le contenu du formulaire de contact pour les véhicules d'occasion
function check_occasion_contact(form)
{
	// NOM
	if(!check_content(form.elements['nom'], 'string'))
	{
		alert('Veuillez renseigner votre nom');
		form.elements['nom'].focus();
		return false;
	}
	// PRENOM
	else if(!check_content(form.elements['prenom'], 'string'))
	{
		alert('Veuillez renseigner votre prenom');
		form.elements['prenom'].focus();
		return false;
	}
	// EMAIL + TEL
	else if(trim(form.elements['email'].value) == '' && trim(form.elements['tel'].value) == '')
	{
		alert('Veuillez renseigner votre email ou votre numéro de téléphone afin que l\'on puisse vous joindre');
		if(trim(form.elements['email'].value) == '')
			form.elements['email'].focus();
		else
			form.elements['tel'].focus();
		return false;
	}
	// EMAIL
	else if(trim(form.elements['tel'].value) == '' && !check_content(form.elements['email'], 'email'))
	{
		alert('Veuillez renseigner un email valide');
		form.elements['email'].focus();
		form.elements['email'].select();
		return false;
	}
	return true;
}

/* recherche des catégories disponibles dans une agence */
var popup_type_categories = new Array();
function check_quick_reservation(form)
{
	if(form.ag_id.selectedIndex == 0)
	{
		alert('Veuillez choisir une agence de location');
		form.ag_id.focus();
		return false;
	}
	else if(!check_content(form.date_du))
	{
		alert('Veuillez préciser la date de départ');
		form.date_du.focus();
		return false;
	}
	else if(!check_content(form.date_au))
	{
		alert('Veuillez préciser la date d\'arrivée');
		form.date_au.focus();
		return false;
	}

	if(xhr)
	{
		var type_id = 0;
		var url = '';
		var field = null;
		var value = null;
		for(var i = 0; i < form.elements.length; i++)
		{
			field = form.elements[i];
			value = '';
			switch(field.type)
			{
				// Hidden
				case 'hidden' :
				case 'text':
					value = field.value;
					break;
				// Select
				case 'select-one' :
					value = field.options[field.selectedIndex].value;
					break;
				case 'radio' :
					if(field.checked && field.name == 'type_id')
						type_id = value = field.value;
					break;
				// pour les radio ou checkbox
				default :
					if(field.checked)
					{
						value = field.value;
						break;
					}
					else if(field.length)
					{
						for(var k = 0; k < field.length; k++)
						{
							if(field[k].checked)
							{
								value = field[k].value;
								break;
							}
						}
					}
			}
			if(value != '')
				url += field.name + '=' + value+ '&';
		}
		// Obtenir et changer le contenu selon la catégorie
		//if(typeof popup_type_categories[type_id] == 'undefined')
		//if(true)
		//{
			if(xhr)
			{
				xhr.abort();
				xhr.onreadystatechange  = function()
				{
				     if(xhr.readyState  == 4)
				     {
						if(xhr.status  == 200)
						{
							//popup_type_categories[type_id] = xhr.responseText;
							//Popup.display(popup_type_categories[type_id]);
							Popup.display(xhr.responseText);
						}
				     }
				}

				xhr.open("POST", "includes/ajax.php", true);
				xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				xhr.send(url);
			}
		//}
		//else
		//{
		//	Popup.display(popup_type_categories[type_id]);
		//}
		return false;
	}
	else
	{
		be_patient();
		return true;
	}

}

/* Affiche un liste de X catégories directement dans la POPUP CSS */
function popup_display_cat(url)
{
	if(xhr)
	{
		xhr.abort();
		xhr.onreadystatechange  = function()
		{
		     if(xhr.readyState  == 4)
		     {
				if(xhr.status  == 200)
				{
					//Popup.hide();
					//popup_type_categories[type_id] = xhr.responseText;
					Popup.display(xhr.responseText);
				}
		     }
		}
		be_patient();
		xhr.open("POST", "includes/ajax.php", true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send(url);
	}
	else
		Popup.hide();
}


/* vérification coordonnées */
function check_coordonnees(form)
{
	if(!check_content(form.nom))
	{
		alert('Veuillez préciser votre nom');
		form.nom.focus();
		return false;
	}
	else if(!check_content(form.prenom))
	{
		alert('Veuillez préciser votre prénom');
		form.prenom.focus();
		return false;
	}
	else if(!check_content(form.email, 'email'))
	{
		alert('Veuillez préciser un email valide');
		form.email.focus();
		return false;
	}
	be_patient();
	return true;
}
/* vérification login */
function check_login(form)
{
	if(!check_content(form.email , 'email'))
	{
		alert('Veuillez préciser un email valide');
		form.email.focus();
		return false;
	}
	else if(!check_content(form.pass))
	{
		alert('Veuillez préciser votre mot de passe');
		form.pass.focus();
		return false;
	}
	return true;
}


/* AJAX : affiche le détail de la catégorie sélectionnée */
var categorie_content = new Array();
function display_cat(cat_id,cat_code)
{
	// Mettre le style par défaut
	var divs = document.getElementsByTagName('div');
	for(var i =0; i < divs.length; i ++)
	{
		if(divs[i].className.indexOf('vehicule_mouseover') >= 0)
		{
			divs[i].className = 'vehicule_mouseover';
		}
	}
	document.getElementById('categorie_'+cat_id).className += ' selected';

	// Obtenir et changer le contenu selon la catégorie
	if(typeof categorie_content[cat_id] == 'undefined')
	{
		if(xhr)
		{
			xhr.abort();
			xhr.onreadystatechange  = function()
			{
			     if(xhr.readyState  == 4)
			     {
					if(xhr.status  == 200)
					{
						document.getElementById('categorie_detail').innerHTML = xhr.responseText;
						categorie_content[cat_id] = xhr.responseText;
					}
			     }
			}

			xhr.open("POST", "includes/ajax.php", true);
			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xhr.send('cat_code='+cat_code);
		}
	}
	else
	{
		document.getElementById('categorie_detail').innerHTML = categorie_content[cat_id];
	}
}
// POPUP
function popup(adresse, width, height, popup_name)
{
	width = (width == undefined ? 800 : width);
	height = (height == undefined ? 800 : height);
	var left = (screen.width - width) / 2 ;
	var top = (screen.height - height) / 2;
	if(popup_name == 'undefined')
		popup_name = 'popuped';
	var w = window.open(adresse, popup_name, 'top='+top+',left='+left+',width='+width+',height='+height+',statusbar=1,location=0,menubar=0,scrollbars=1');
	w.document.close();
	w.focus();
}
// slideshow
var photos = new Array();
var current_photos = new Array();
var current_photo = 0;
function slideshow_photos(i, container_id)
{
	current_photos[i] = (current_photos[i] >= photos[i].length -1 ? 0 : current_photos[i] + 1 );
	current_photo = current_photos[i];
	document.getElementById(container_id).innerHTML = '<img src="'+photos[i][current_photo][0]+'" width="'+photos[i][current_photo][1]+'" height="'+photos[i][current_photo][2]+'" />';
	window.setTimeout("slideshow_photos("+i+", '"+container_id+"')", 3000);
}

// Avertir pour toute modification
function confirm_saisie()
{
	return confirm('Désirez-vous valider les modifications effectuées ?');
}

// **********************************
// 			CHECK FORM
// **********************************
var reg_email = /^[\w\-]+(\.[\w\-]+)*@[\w\-]+(\.[\w\-]+)*\.[\w\-]{2,}$/;
var error = '';
// Nom des Champs obligatoires du formulaire
var fields = new Array();
// Titre de ces champs
var fields_title = new Array();
// Champs numériques
var fields_numeric = new Array();
// Emails a vérifier
var fields_email = new Array();
var field_classname_normal = 'field_normal';
var field_classname_error = 'field_error';
var form_lang = 'fr';
// Vérification formulaire demande
function check_form(form)
{
	// champ courant
	var field = null;
	// s'il est correctement rempli
	var res = false;
	var j = 0;
	// Boucle sur tous les champs du form
	for(var i = 0; i < form.elements.length; i++)
	{
		error = '';
		if(form.elements[i].type) // eviter de changer la classe d'autres éléments que des input, select, ....
			form.elements[i].className = field_classname_normal;
		if(form.elements[i].name != fields[j])
			continue;
		if(j >= fields.length )
			break;

		// Vérification du champs obligatoire
		field = form.elements[fields[j]];
		res = false;
		// Selon son type
		switch(field.type)
		{
			// Hidden
			case 'hidden' :
				res = true;
				break;
			// Select
			case 'select-one' :
				res = field.selectedIndex > 0 || (field.selectedIndex == 0 && field.options[field.selectedIndex].value != '' && field.options[field.selectedIndex].value > 0);
				break;
			// text ou textarea
			case 'text' :
			case 'password' :
			case 'textarea' :
				res = field.value != '';
				// OK, alors voyons voir s'il s'agit d'un champ email
				if(res && fields_email.length > 0)
				{
					for(var k = 0; k < fields_email.length; k++)
					{
						if(field.name == fields_email[k])
						{
							res = reg_email.test(field.value);
							if(!res)
							{
								if(form_lang == 'en')
									error = 'Please fill in a valid email';
								else
									error = 'Vous devez préciser un email valide';
								break;
							}
						}
					}
				}
				// OK, alors voyons voir s'il s'agit d'un champ numéric
				if(res && fields_numeric.length > 0)
				{
					for(var k = 0; k < fields_numeric.length; k++)
					{
						if(field.name == fields_numeric[k])
						{
							res = !isNaN(field.value);
							if(!res)
							{
								if(form_lang == 'en')
									error = 'The field "'+fields_title[j]+'" must contain only numeric chars';
								else
									error = 'Le champ "'+fields_title[j]+'" doit être composé de chiffres uniquement';
								break;
							}
						}
					}
				}
				break;
			// pour les radio ou checkbox
			default :
				if(field.length)
				{
					for(var k = 0; k < field.length; k++)
					{
						field[k].parentNode.parentNode.className = field_classname_normal;
						res = field[k].checked;
						if(res)
							break;
					}
				}
		}
		if(!res)
			break;
		j++;
	}
	// Si mal rempli
	if(!res)
	{
		if(form_lang == 'en')
			error = (error == '') ? 'Le field "' + fields_title[j] +'" is obligatory' : error;
		else
			error = (error == '') ? 'Le champ "' + fields_title[j] +'" est obligatoire' : error;
		alert(error);
		if(field.focus)
		{
			field.focus();
			field.className = field_classname_error;
		}
		else if(field.length)
		{
			var opt = null;
			for(var k = 0; k < field.length; k++)
			{
				opt = field[k].parentNode;
				field[k].parentNode.parentNode.className = field_classname_error;
			}
			// -> focus sur le premier élément
			window.scrollTo(0,opt.offsetTop);
		}
		return false;
	}
	return true;
}


// **********************************
// 			QUICKBOOK
// **********************************
var interval_quickbook = null;
// Mettre à jour depuis les inputs du quickbook
function update_from_quickbook()
{
	var els = document.forms['main_form_left'].elements;
	update_form_values('ag_id', 		els['ag_id'].options[els['ag_id'].selectedIndex].value);
	update_form_values('date_du', 		els['date_du'].value);
	update_form_values('date_du_heure', els['date_du_heure'].options[els['date_du_heure'].selectedIndex].value);
	update_form_values('date_au', 		els['date_au'].value);
	update_form_values('date_au_heure', els['date_au_heure'].options[els['date_au_heure'].selectedIndex].value);
}
// Mise à jour de la valeur de tous les inputs de tous les formulaire ayant le même input name
function update_form_values(input_name, input_value)
{
	var el = null;
	for(var i = 0; i < document.forms.length; i++)
	{
		if(document.forms[i].name == 'main_form_left')
			continue;
		for (var j = 0; j < document.forms[i].elements.length; j ++)
		{
			el = document.forms[i].elements[j];
			if(el && el.name && el.name == input_name)
			{
				switch(el.type)
				{
					case 'select-one':
						for(var k = 0; k < el.options.length; k++)
						{
							if(el.options[k].value == input_value)
							{
								el.options[k].selected = true;
								break;
							}
						}
						break;

					case 'hidden' :
					case 'text':
						el.value = input_value;
						break;
				}

				break;
			}
		}
	}
}


// fonction qui affiche la "greybox" pour indiquer au visiteur de patienter un moment
var interval_patient = null;
function be_patient(message)
{
	var img = new Image();
	img.src = 'images/loading.gif';
	if(interval_patient > 0)
		clearInterval(interval_patient);
	if(!img.complete)
		interval_patient = setInterval('be_patient("'+message+'")', 10);
	else
	{
		if(!message || message == null || typeof message == "undefined" || message == '')
			message = 'Veuillez patienter pendant la recherche des informations';
		Popup.display('<h4>'+message+'</h4><br /><br /><img src=\'images/loading.gif\' /><br />&nbsp;');
	}
}

function be_patient_refresh()
{
	document.onkeydown = function(e)
	{
		e = (!e) ? event : e;
		if(e.keyCode == 116)
			be_patient()
	}
}


// initialisation Popup
if(typeof(Popup) != 'undefined')
{
	Popup.close_str = '';
	Popup.img_close_url = 'images/close.gif';
	Popup.img_loading_url = 'images/loading.gif';
	Popup.autocheck_images = false;
	Popup.init();
}

function popup_volumateur()
{
	if (valeur==1){stat('francecars','','','lien;volumateur');};
	popup('/volumateur.htm',580,460, 'volumateur');
}
