var gidropdown = new Class(
{
	mobj_slide: null,
	initialize: function(_s_link_id, _s_container_id)
	{
		if (
				!$chk($(_s_container_id)) || 
				!$chk($(_s_link_id))
		)
			return;

		//we create our slide & hide it:
		this.mob_slide = new Fx.Slide(_s_container_id);
		this.mob_slide.hide();

		//we set our container as a contaner:
		$(_s_container_id).setStyle('display', 'block');

		//we add our event on our link:
		var obj_this = this;
		$(_s_link_id).addEvent('click', function(_evt){ _evt = new Event(_evt).stop(); obj_this.click(this); });
	},
	click: function(_obj_link)
	{
		//we toggle:
		this.mob_slide.toggle();
		return false; //because href="#"
	}
});

window.addEvent('domready', function()
{
	new gidropdown('grpaidbooking_link', 'grpaidbooking_container');
});

var gihttprequestjson;
function sendajax(s_url, s_onresponse, s_data){

	gihttprequestjson = new Request({

		url: s_url,

		data: s_data,

		onRequest: function(){
			//alert("Sending");
		},

		onComplete: function(response){
			//alert('Response is done');
		},

		onSuccess: function(jsonObj){
			s_onresponse(eval( "(" + jsonObj + ")" ), jsonObj);
		},

		onFailure: function(){
			alert('The request failed.');
		}
	});

	gihttprequestjson.send();
}
function getvillesofregion(field, id, lang){
	s_data = "id="+id+"&select="+field+"&lang="+lang;
	sendajax("http://"+window.location.hostname+"/include/getvillesofregion.aspx", displayvilles, s_data);
}
function displayvilles(jsonObj, text){
	//alert("complete\ntext:\n" + text+"\njson:\n"+jsonObj);

	//remove villes
	liste = document.getElementById(jsonObj.select);
	while(liste.options.length > 0){
		liste.removeChild(liste.options[0]);
	}

	id = 0;

	var villes = jsonObj.villes;
	if(villes.length > 0){
		villes.each(function(ville) {
			//add news
			option = document.createElement("option");
			option.value = (ville.id == 0)?"":ville.nom; //id			 
			option.text = ville.nom;
			liste.options[liste.options.length] = option;

			if(id == 0) id = ville.id;
		});
	}
}

/**/
function getprovinces(lang){
	$("waitprovince").style.display="inline";
	idpays = document.grpaidbooking_form.country.value;
	s_data = "idpays="+idpays+"&lang="+lang;
	sendajax("http://"+window.location.hostname+"/include/getprovinces.aspx", setprovinces, s_data);
}
function setprovinces(jsonObj, text){
	//alert(text);
	//remove provinces
	liste = document.getElementById("province");
	while(liste.options.length > 0){
		liste.removeChild(liste.options[0]);
	}

	var provinces = jsonObj.provinces;
	if(provinces.length > 0){
		provinces.each(function(province) {
			//add news
			option = document.createElement("option");
			option.value = province.reservitid; //id			 
			option.text = province.nom;
			liste.options[liste.options.length] = option;
		});
	}
	$("waitprovince").style.display="none";	
	document.grpaidbooking_form.province.onchange();
}
function getregions(lang){
	$("waitregion").style.display="inline";
	idprovince = document.grpaidbooking_form.province.value;
	idpays = document.grpaidbooking_form.country.value;
	s_data = "idprovince="+idprovince+"&idpays="+idpays+"&lang="+lang;
	sendajax("http://"+window.location.hostname+"/include/getregions.aspx", setregions, s_data);
}
function setregions(jsonObj, text){
	//alert(text);
	//remove regions
	liste = document.getElementById("region");
	while(liste.options.length > 0){
		liste.removeChild(liste.options[0]);
	}

	//id = 0;

	var regions = jsonObj.regions;
	if(regions.length > 0){
		regions.each(function(region) {
			//add news
			option = document.createElement("option");
			option.value = region.reservitid; //id			 
			option.text = region.nom;
			liste.options[liste.options.length] = option;

			//if(id == 0) id = region.id;
		});
	}
	$("waitregion").style.display="none";	
	document.grpaidbooking_form.region.onchange();
}
function getvilles(lang){
	$("waitville").style.display="inline";
	idregion = document.grpaidbooking_form.region.value;
	idprovince = document.grpaidbooking_form.province.value;
	idpays = document.grpaidbooking_form.country.value;
	s_data = "idregion="+idregion+"&idprovince="+idprovince+"&idpays="+idpays+"&lang="+lang;
	sendajax("http://"+window.location.hostname+"/include/getvilles.aspx", setvilles, s_data);
}
function setvilles(jsonObj, text){
	//alert(text);
	//remove villes
	liste = document.getElementById("namecity");
	while(liste.options.length > 0){
		liste.removeChild(liste.options[0]);
	}

	var villes = jsonObj.villes;
	if(villes.length > 0){
		villes.each(function(ville) {
			//add news
			option = document.createElement("option");
			option.value = ville.nom; //ville.reservitid; //id			 
			option.text = ville.nom;
			liste.options[liste.options.length] = option;
		});
	}
	$("waitville").style.display="none";
}
/**/


var NbMaxAdult = 9;
var selectedAdult = new Array(NbMaxAdult);
var NbMaxChild = 9;
var selectedChild = new Array(NbMaxChild);
	
function buildBestRates(noflush) {
    myelem = document.getElementById("lblbestrates");
    if (!noflush)
    	str = "";
    else
		str = "| Pour afficher les meilleurs tarifs, nous vous demandons d'indiquer l'âge des enfants.";
	myelem.innerHTML = str;
}

function buildChild(roomid,numchild,modif) {
 
	var nbchild = 0;
	if (numchild != null) 
	  nbchild = numchild.options[numchild.selectedIndex].value;
	var str = '';
    myelem = document.getElementById("room"+roomid);
 
    if (myelem == null && modif) {
		myelemChild = document.getElementById("childs_div");
        myelemChild.innerHTML = myelemChild.innerHTML+"\n<div id='room"+roomid+"'></div>";
        myelem = document.getElementById("room"+roomid);
    }
    
    if (myelem != null) {
	var beginAgeAdult = 19;
    	myelem.innerHTML = str;
    
    
    if (nbchild>0) {
		nbchild++;
 
		
			str += "<table>\n";
			str += "	<tr>\n";
			str += "		<td>&nbsp;</td>\n";	
			for (i=1;i<nbchild;i++) {
				str += "		<td id ='lblchildage'>Enfant "+i+"</td>\n";
			}
			i--;
			str += "	</tr>\n";
 
/*			str += "	<tr>\n";
			str += "		<td>\n";
			str += "			<div id ='lblroom'>\n";
			str += "				Chambre "+roomid+"\n";
			str += "			</div>\n";
			str += "		</td>\n";
 
			for (j=1;j<nbchild;j++) {
				str += "		<td>\n";
				str += "			<select name='nbpax_room"+roomid+"_age"+j+"' onchange=\"selectedChildAge"+roomid+"_"+j+"= this.value;\">\n";
				for (k=1;k<beginAgeAdult;k++) {
					str += "				<option value = '"+k+"'";
					if (k == eval("selectedChildAge"+roomid+"_"+j)) str += " selected ";
					if (k ==1)
						str += "				>"+k+" an</option>\n";
					else
						str += "				>"+k+" ans</option>\n";
				}
				str += "			</select>\n";
				str += "		</td>\n";
			}
			str += "	</tr>\n";*/
			str += "</table>\n";
			str += "</div>\n";
			myelem.innerHTML = str;
		
		}
	}
}

function getOneChildChoosen() {
  // Calcul du nombre de champ dans le formulaire
  	if (document.grpaidbooking_form.numroom.type=='hidden' || document.grpaidbooking_form.numroom.type=='text') {
	  var nbRoom = eval('document.grpaidbooking_form.numroom.value');
	}
	else {
		var nbRoom = eval('document.grpaidbooking_form.numroom.options[document.grpaidbooking_form.numroom.selectedIndex].value');
	}
  
  // Boucle sur tous les champs du formulaire
  for (index = 1; index <= nbRoom; index++) {
    field = eval('document.grpaidbooking_form.nbchild'+index);
    if (field) {
    	var nameField = new String(field.name);
		var valueField = field.options[field.selectedIndex].value;
    	if (valueField > 0) { return true; }
    }
  }
  return false;
}

function buildPax(numroom) {
	if (numroom.type=='hidden' || numroom.type=='text') {
		nbrooms = numroom.value;
	}
	else {
		 nbrooms = numroom.options[numroom.selectedIndex].value;
	}

	var str = '';
	var strChild = '';
    myelem = document.getElementById("rooms_div");
 
    var idx=0;
    for (idx=(parseInt(nbrooms,10)+1); idx<=NbMaxChild; idx++)
      {
        myelem2 = eval("document.grpaidbooking_form.nbchild"+idx);
        if (myelem2 != null)
          {
            myelem2.selectedIndex=0; 
          }
		selectedAdult[idx] = 0;
        selectedChild[idx] = 0;
      }
 
    if (myelem != null) myelem.innerHTML = str;
 
	for (i=1;i<=nbrooms;i++) {
	
		if (i==1) {
		str += "<table>\n";
    		str+= "    <tr>\n";
	    	str += "        <td>&nbsp;</td>\n";
    		str += "        <td><div id ='lbllangadult'>Adulte(s)</div></td>\n";
    		
	    	str += "        <td><div id ='lbllangchild'>Enfant(s)</div></td>\n";
	    	
	    	str += "    </tr>\n";
	    }
	    str += "        <tr>\n";
	    str += "            <td>\n";
	    str += "                <div id ='lbllangroom'>\n";
	    str += "                    <font class='navregion_lbl'>Chambre</font> "+i+"\n";
	    str += "                </div>\n";
	    str += "            </td>\n";
	    str += "            <td>\n";
	    
  		str += "            <select style='width:50' name='nbpax_room"+i+"_range19-0' onchange=\"selectedAdult["+i+"] = this.value;\">\n";
  		
 		// La première chambre doit contenir au moins un adulte. 		
  		if (i==1) j=1; else j=0;
  		while (j<10) {
	    	str += "            <option value = "+j+"";
	    	if (j == selectedAdult[i]) str += " selected ";
			str += "	    	>"+j+"</option>\n";
			j++;
		}	        
	    str += "            </select>\n";
	    str += "            </td>\n";
	    
	    str += "            <td>\n";
	    str += "                <select style='width:50' name='nbchild"+i+"' onchange = \"buildBestRates(getOneChildChoosen());";
	    str += "                selectedChild["+i+"] = this.value;";
	    str += "                buildChild("+i+",document.grpaidbooking_form.nbchild"+i+",true);\">\n";
	    for (j=0;j<NbMaxChild+1 ;j++) {
	    	str += "            <option value = "+j+"";
	    	if (j == selectedChild[i]) str += " selected ";
	    	str += "            >"+j+"</option>\n";
	    }
		str += "                </select>\n";
	    str += "            </td>\n";
	    
	    str += "    </tr>\n";
	    
	    if (i==nbrooms)
			str += "</table>\n";
	}
	myelem.innerHTML = str;
 
    for (idx=(parseInt(nbrooms,10)+1); idx<=NbMaxChild; idx++)
      {
        myelem2 = eval('document.grpaidbooking_form.nbchild'+idx);
        if (myelem2 != null)
          {
            buildChild(idx,myelem2,false);
          }
      }
    buildBestRates(getOneChildChoosen());
}

function getyears()
{
	var d = new Date();
	d.getFullYear();
}
