function getMarkerNameNumber(number) {

	if (number < 10) return 'gmap_marker_00'+number+'.png';
	else if ((number >= 10) && (number <= 30)) return 'gmap_marker_0'+number+'.png';
	else  return 'gmap_marker.png';
}

function getIconNameNumber(number) {

	if (number < 10) return 'icon_00'+number+'.png';
	else if ((number >= 10) && (number <= 30)) return 'icon_0'+number+'.png';
	else  return 'icon.png';
}


function pleaseWait(pleaseWaitID, requestOK) {

	var laPage = window.document;

	if (laPage.getElementById(pleaseWaitID)) {

		var spanImage = laPage.getElementById(pleaseWaitID);

		if (!requestOK) {

			img = new Image();
			img.src = 'http://'+window.location.hostname+'/images/icons/ajax_loader.gif';

			if (img.complete) {

				var gifAttente = laPage.createElement('img');
					gifAttente.src = 'http://'+window.location.hostname+'/images/icons/ajax_loader.gif';
					gifAttente.title = 'Requête en cours, patientez...';
					gifAttente.alt = 'ajax_loader.gif';

				spanImage.appendChild(gifAttente);
			}
		}
		else spanImage.innerHTML = null;
	}
}

function pleaseWaitById(elementid) {

	if($('#pleasewait_'+elementid).length > 0) $('#pleasewait_'+elementid).remove();
	else {

		$('#'+elementid).after('<img src="'+urlImage+'/icons/ajax-loader.gif" \
										id="pleasewait_'+elementid+'" \
										name="pleasewait_'+elementid+'" />');
	}
}

/**
 * Afficher ou cacher un élément.
 */
function fixerVisibilite(elementID, affichage) {

	if(document.getElementById(elementID) != null)	document.getElementById(elementID).style.display = affichage;
}

/**
 * Inverser l'affichage d'un élément.
 */
function switcherVisibilite(elementID) {

	var elementCible = document.getElementById(elementID);

	if (elementCible.style.display == 'none') elementCible.style.display = '';
	else elementCible.style.display = 'none';
}

function isHidden(elementID) {

	var elementCible = document.getElementById(elementID);
	if (elementCible.style.display == 'none') return true;
	else return false;
}

/**
 * Cocher / décocher une case.
 */
function switcherCheckbox(nomChamp) {

	var elementCible = document.getElementById(nomChamp);

	if (elementCible.checked == false) elementCible.checked = true;
	else elementCible.checked = false;
}

/**
 * Permet de rechercher rapidement une valeur dans une liste déroulante et la sélectionner.
 */
function searchInList(listid, type) {
	if(type != 2) $type = 1;

	document.write('<input type="text" name="sil_'+listid+'" id="sil_'+listid+'" onkeyup="javascript:searchInputText(this.value, \''+listid+'\', \''+type+'\');" /><br />');
	document.getElementById('sil_'+listid).value = null;
}

function searchInputText(inputsearchtext, listid, type) {
	if(type != 2) $type = 1;
	
	var alist = document.getElementById(listid);

	// Chercher un match exacte dans la liste déroulante
 	//for (var i = 0; i < alist.options.length; i++) {
	//
	//	if (alist.options[i].text.toLowerCase() == inputsearchtext.toLowerCase()) {
	//
	//		matchOK = true;
	//		alist.options[i].selected = true;
	//	}
	//}

	// Matcher qu'avec les trois premières lettres.
	//if (!matchOK) {

	// Chercher avec match exact dans la liste des services d'olotels.
	for (var i = 0; i < alist.options.length; i++) {

		if(type == 1){
			if (alist.options[i].text.substr(0, 3).toLowerCase() == inputsearchtext.substr(0, 3).toLowerCase()) {
	
				alist.options[i].selected = true;
				break;
			}
		}
		else{
			if ((alist.options[i].text.toLowerCase()).indexOf(inputsearchtext.toLowerCase()) == -1) {

				alist.options[i].style.display = "none";
			}else{
				alist.options[i].style.display = "";
			}
		}
	}
	

	//}
}

/**
 * Permet de scroller la page vers une ancre donnée.
 */
function goToAnchor(anchorName) {

	document.location.href='#'+anchorName;
	document.location.replace;
}

function toggle(id) {
	var d = document.getElementById(id);
	if (d.style.display == "none")
		d.style.display = "";
	else d.style.display = "none";
}

function tip(i,evt,hauteur) {

	var xfenetre,yfenetre,xpage,ypage,element=null;
	var offset= 20;           // decalage par defaut
	if (!hauteur) hauteur=40; // hauteur par defaut

	if (document.all) {
		element=document.all['tip'+i]
		xfenetre = evt.x;
		yfenetre = evt.y;
		xpage=xfenetre; ypage=yfenetre;
		if (document.body.scrollLeft) xpage = xfenetre + document.body.scrollLeft;
		if (document.body.scrollTop) ypage = yfenetre + document.body.scrollTop;
	} else if (document.getElementById) {


		element = document.getElementById('tip'+i);
		xfenetre = evt.clientX;
		yfenetre = evt.clientY;
		xpage = xfenetre-150;
		ypage = yfenetre-20;
		if(evt.pageX) xpage = evt.pageX-150;
		if(evt.pageY) ypage = evt.pageY-20;
	}

	if(element) tipStyle=element.style;

	if(tipStyle) {
	/* on met la bulle à  droite et en bas du pointeur  */
		xpage=xpage+offset;
		ypage=ypage+offset;
		if(typeof(tipStyle.left)=='string') {
			tipStyle.left=xpage+'px';
			tipStyle.top=ypage+'px';
		} else {
			tipStyle.left=xpage;
			tipStyle.top=ypage;
		}
		tipStyle.display="block";
	}
}

function untip(){
	if (tipStyle) tipStyle.display="none";
}

/**
 * Ouvre une fenàªtre popup.
 * @param object link		lien de la page
 */
function popwin(link) {
	params = 'alwaysRaised=yes,dependent=no,width=300,height=300,resizable=yes,menubar=no,location=no,status=no,toolbar=no,scrollbars=yes';
	popup = window.open(link, 'infos', params);
	popup.focus();
	return false;
}
function popwinmap(link) {
	params = 'alwaysRaised=yes,dependent=no,width=600,height=400,resizable=yes,menubar=no,location=no,status=no,toolbar=no,scrollbars=yes';
	popup = window.open(link, 'infos', params);
	popup.focus();
	return false;
}
function popwinalliance(link) {
	params = 'alwaysRaised=yes,dependent=no,width=600,height=550,resizable=yes,menubar=no,location=no,status=no,toolbar=no,scrollbars=yes';
	popup = window.open(link, 'infos', params);
	popup.focus();
	return false;
}

function favoris(title, url) {
	if (navigator.appName != 'Microsoft Internet Explorer') {
		window.sidebar.addPanel(title, url,"");
	} else {
		window.external.AddFavorite(url, title);
	}
}

/**
 * Afficher/cacher les lignes des chambres du formulaire de recherche 'hotel_search'.
 */
function display_rooms11() {
	var form = document.getElementById('hotel_search');
	var roomcount = form.roomcount[form.roomcount.selectedIndex].value;
	if (roomcount == 1) {
		document.getElementById('room2').style.display = "none";
		document.getElementById('room3').style.display = "none";
	} else if (roomcount == 2) {
		document.getElementById('room2').style.display = "";
		document.getElementById('room3').style.display = "none";
	} else if (roomcount == 3) {
		document.getElementById('room2').style.display = "";
		document.getElementById('room3').style.display = "";
	}
}

/**
 * Afficher/cacher des blocs div grà¢ce à  un select. Le select contient une liste d'id
 * de div. Il affiche le div avec l'id sélectionné et cache tous les autres.
 * @param obj  un objet select d'un formulaire
 */
function show_selected_div(obj) {
	for (var i=0; i<obj.length; i++)
		document.getElementById(obj[i].value).style.display = (i == obj.selectedIndex ? "block" : "none");
}

/**
 * Afficher/cacher des blocs div gràce à un groupe de boutons radio.
 * @param obj  un groupe de boutons radio d'un formulaire
 */
function show_selected_div2(obj) {
	var monGroupName = obj.name;
	var arrayRadioGroup = document.getElementsByName(monGroupName);

	for (var i=0; i<arrayRadioGroup.length; i++) {
		var divAafficherMasquer = document.getElementById(arrayRadioGroup[i].value);

		if (arrayRadioGroup[i].checked == true) {
			divAafficherMasquer.style.display = "";
			document.getElementById("td_"+arrayRadioGroup[i].value).className  = "td_activepaymentmethod";
		} else {
			divAafficherMasquer.style.display = "none";
			document.getElementById("td_"+arrayRadioGroup[i].value).className  = "";
		}
	}
}

/**
 * Afficher/cacher un élément grà¢ce à  un select. Le select contient une liste d'id
 * Il affiche ou cache l'élément avec l'id sélectionné.
 * @param obj  un objet select d'un formulaire
 */
function toggle_el(obj, id) {
	var opt = document.getElementById(obj).value;
	var el = document.getElementById(id);

	if (opt == el.id) {
		if (el.style.display == "none")
			el.style.display = "";
	}
	else el.style.display == "none";
}
//check if the checkin is closed to today
function confirmCancel(){

	if (confirm('Annulation Debit - etes vous sure ?')){
		//document.submit();
		return true;
	}else{
		return false;
	}
}
function confirmReimburse(){

	if (confirm('Remboursement - etes vous sure ?')){
		//document.submit();
		return true;
	}else{
		return false;
	}
}
function confirmCapture(){

	if (confirm('Capture - etes vous sure ?')){
		//document.submit();
		return true;
	}else{
		return false;
	}
}
//check if the checkin is closed to today
function checklastminute(){

	tmpYear = eval("document.hotel_search.checkindateyear").value;
	tmpMonth = eval("document.hotel_search.checkindatemonth").value;
	tmpDay = eval("document.hotel_search.checkindateday").value;
	tmpCheckindate = new Date(tmpYear, tmpMonth-1, tmpDay);

	var today = new Date();

	var diffDay = Math.round((tmpCheckindate.getTime() - today.getTime())/(24*60*60*1000));
	if (diffDay >= 0 && diffDay <= 10){
		if (confirm('reservation a moins de 10 jours - etes vous sure ?')){
			//document.submit();
			return true;
		}else{
			return false;
		}
	}
}


/*  select an option in a ddl
*/
function setOptionSelected(ddlid, selectedvalue){
	var ddl = document.getElementById(ddlid);
	if(ddl){
		for (var i = 0; i < ddl.options.length; i++) {
			if (ddl.options[i].value == selectedvalue) {
				ddl.options[i].selected = true;
				break;
			}
		}
	}
}

function toggle_panel(panels){
	var list_panel = panels.split(',');
	for(var i = 0; i < list_panel.length; i++) $('#'+list_panel[i]).toggle();
}

function unserialize (data) {
    // http://kevin.vanzonneveld.net
    // +     original by: Arpad Ray (mailto:arpad@php.net)
    // +     improved by: Pedro Tainha (http://www.pedrotainha.com)
    // +     bugfixed by: dptr1988
    // +      revised by: d3x
    // +     improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +        input by: Brett Zamir (http://brett-zamir.me)
    // +     improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     improved by: Chris
    // +     improved by: James
    // +        input by: Martin (http://www.erlenwiese.de/)
    // +     bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     improved by: Le Torbi
    // +     input by: kilops
    // +     bugfixed by: Brett Zamir (http://brett-zamir.me)
    // -      depends on: utf8_decode
    // %            note: We feel the main purpose of this function should be to ease the transport of data between php & js
    // %            note: Aiming for PHP-compatibility, we have to translate objects to arrays
    // *       example 1: unserialize('a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}');
    // *       returns 1: ['Kevin', 'van', 'Zonneveld']
    // *       example 2: unserialize('a:3:{s:9:"firstName";s:5:"Kevin";s:7:"midName";s:3:"van";s:7:"surName";s:9:"Zonneveld";}');
    // *       returns 2: {firstName: 'Kevin', midName: 'van', surName: 'Zonneveld'}

    var that = this;
    var utf8Overhead = function(chr) {
        // http://phpjs.org/functions/unserialize:571#comment_95906
        var code = chr.charCodeAt(0);
        if (code < 0x0080) {
            return 0;
        }
        if (code < 0x0800) {
             return 1;
        }
        return 2;
    };


    var error = function (type, msg, filename, line){throw new that.window[type](msg, filename, line);};
    var read_until = function (data, offset, stopchr){
        var buf = [];
        var chr = data.slice(offset, offset + 1);
        var i = 2;
        while (chr != stopchr) {
            if ((i+offset) > data.length) {
                error('Error', 'Invalid');
            }
            buf.push(chr);
            chr = data.slice(offset + (i - 1),offset + i);
            i += 1;
        }
        return [buf.length, buf.join('')];
    };
    var read_chrs = function (data, offset, length){
        var buf;

        buf = [];
        for (var i = 0;i < length;i++){
            var chr = data.slice(offset + (i - 1),offset + i);
            buf.push(chr);
            length -= utf8Overhead(chr); 
        }
        return [buf.length, buf.join('')];
    };
    var _unserialize = function (data, offset){
        var readdata;
        var readData;
        var chrs = 0;
        var ccount;
        var stringlength;
        var keyandchrs;
        var keys;

        if (!offset) {offset = 0;}
        var dtype = (data.slice(offset, offset + 1)).toLowerCase();

        var dataoffset = offset + 2;
        var typeconvert = function(x) {return x;};

        switch (dtype){
            case 'i':
                typeconvert = function (x) {return parseInt(x, 10);};
                readData = read_until(data, dataoffset, ';');
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 1;
            break;
            case 'b':
                typeconvert = function (x) {return parseInt(x, 10) !== 0;};
                readData = read_until(data, dataoffset, ';');
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 1;
            break;
            case 'd':
                typeconvert = function (x) {return parseFloat(x);};
                readData = read_until(data, dataoffset, ';');
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 1;
            break;
            case 'n':
                readdata = null;
            break;
            case 's':
                ccount = read_until(data, dataoffset, ':');
                chrs = ccount[0];
                stringlength = ccount[1];
                dataoffset += chrs + 2;

                readData = read_chrs(data, dataoffset+1, parseInt(stringlength, 10));
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 2;
                if (chrs != parseInt(stringlength, 10) && chrs != readdata.length){
                    error('SyntaxError', 'String length mismatch');
                }

                // Length was calculated on an utf-8 encoded string
                // so wait with decoding
                readdata = decode_to_utf8(readdata);
            break;
            case 'a':
                readdata = {};

                keyandchrs = read_until(data, dataoffset, ':');
                chrs = keyandchrs[0];
                keys = keyandchrs[1];
                dataoffset += chrs + 2;

                for (var i = 0; i < parseInt(keys, 10); i++){
                    var kprops = _unserialize(data, dataoffset);
                    var kchrs = kprops[1];
                    var key = kprops[2];
                    dataoffset += kchrs;

                    var vprops = _unserialize(data, dataoffset);
                    var vchrs = vprops[1];
                    var value = vprops[2];
                    dataoffset += vchrs;

                    readdata[key] = value;
                }

                dataoffset += 1;
            break;
            default:
                error('SyntaxError', 'Unknown / Unhandled data type(s): ' + dtype);
            break;
        }
        return [dtype, dataoffset - offset, typeconvert(readdata)];
    };
    
    return _unserialize((data+''), 0)[2];
}

function saveHotel(hotelid, key, pagenum, count, staticpage, distance, operator, price){
	$.ajax({
		type	: "GET",
		url		: urlBase+"/ajax/ajax_saveHotel.php",
		data	: 'hotelid='+hotelid+'&key='+key+'&pagenum='+pagenum+'&count='+count+'&static='+staticpage+'&distance='+distance+'&operator='+operator+'&price='+price,
		success	: function(data) {
			if(data != 0){
				//$('#save'+hotelid).removeClass('icon-save-no-text');
				//$('#save'+hotelid).addClass('icon-saved-no-text');
				$('#savedhotelsblock').empty();
				$('#savedhotelsblock').html(data);
						
			}
		}
	});	
}
function unsaveHotel(hotelid, key){
	$.ajax({
		type	: "GET",
		url		: urlBase+"/ajax/ajax_saveHotel.php",
		data	: 'hotelid='+hotelid+'&unsave=1&key='+key,
		success	: function(data) {
			//$('#save'+hotelid).addClass('icon-save-no-text');
			//$('#save'+hotelid).removeClass('icon-saved-no-text');
			$('#savedhotelsblock').empty();
			$('#savedhotelsblock').html(data);
						
		}
	});	
}

function toggleClassFaq(id){
	$('#'+id).toggleClass('icon-maximise');
	$('#'+id).toggleClass('icon-minimise');
}

function isValidMail(mail) {
	var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');

	return reg.test(mail);
}
