var hotelListFixedBoxLength = 0

//List of variable control when in AJAX request

function InitHotelSearch()
{
	if (document.getElementById("HotelContentTextBox"))
	{
		//document.getElementById("DEBUG").innerHTML = APPSWebServerURL + 'Web2/Search/Hotel/Content.asp?' + defaultParams
		PassAjaxResponseToFunction(APPSWebServerURL + 'Web2/Search/Hotel/Content.asp?' + defaultParams, 'InitSuggestions')
	}
}

function HotelSuggestions(ListToLoad) {
	this.List = ListToLoad
}

/**
 * Request suggestions for the given autosuggest control. 
 * @scope protected
 * @param oAutoSuggestControl The autosuggest control to provide suggestions for.
 */

 
HotelSuggestions.prototype.requestSuggestions = function (oAutoSuggestControl, bTypeAhead, ShowAll) {
	var aSuggestions = [];
	var dSuggestions = [];
	var compSuggestions = [];
    this.sTextboxValue = oAutoSuggestControl.textbox.value;
	this.bTypeAhead = bTypeAhead
	this.ShowAll = ShowAll
	var id
	
	//get the list if at least 3 char are entered
	
    if ((this.sTextboxValue.length >= 3 || ShowAll))
	{
		var id = 0;
		for (var i=0; i < this.List.length; i++) 
		{ 
			currelemName = this.List[i][0]
			currelemID = this.List[i][1]
			currelemDestinationCode = this.List[i][2]
			var currelemNameTemp
			var textFieldValueTemp
			currelemNameTemp = ReplaceAccentsFromString(currelemName.toUpperCase());
			textFieldValueTemp = ReplaceAccentsFromString(this.sTextboxValue.toUpperCase());
			TxtfieldIndexOf = currelemNameTemp.indexOf(textFieldValueTemp);
			
			if (TxtfieldIndexOf>=0 || ShowAll)
			{
				modcurrelem = currelemName.substring(0, TxtfieldIndexOf) + "<span id=searchText" + id + " class=searchText>" + this.sTextboxValue + "</span>" + currelemName.substring(TxtfieldIndexOf + this.sTextboxValue.length, currelemName.length )
				aSuggestions.push([modcurrelem]);
				/* Non formatted hotel list */
				dSuggestions.push([currelemName]);
				compSuggestions.push([currelemName, currelemID, currelemDestinationCode]);
				id++
			}
	    }
		
		oAutoSuggestControl.autosuggest(aSuggestions, dSuggestions, compSuggestions, false);
    }
	
	else
		oAutoSuggestControl.hideSuggestions();
}

function ReplaceAccentsFromString(textValue){
	
	var replacedText = textValue;
	
	replacedText = replacedText.replace(/À/g,"A");
	replacedText = replacedText.replace(/Ä/g,"A");
	replacedText = replacedText.replace(/Â/g,"A");
	replacedText = replacedText.replace(/Ã/g,"A");
	replacedText = replacedText.replace(/Á/g,"A");
	replacedText = replacedText.replace(/É/g,"E");
	replacedText = replacedText.replace(/È/g,"E");
	replacedText = replacedText.replace(/Ë/g,"E");
	replacedText = replacedText.replace(/Ê/g,"E");
	replacedText = replacedText.replace(/Ô/g,"O");
	replacedText = replacedText.replace(/Ò/g,"O");
	replacedText = replacedText.replace(/Ó/g,"O");
	replacedText = replacedText.replace(/Õ/g,"O");
	replacedText = replacedText.replace(/Ö/g,"O");
	replacedText = replacedText.replace(/Ì/g,"I");
	replacedText = replacedText.replace(/Í/g,"I");
	replacedText = replacedText.replace(/Î/g,"I");
	replacedText = replacedText.replace(/Ï/g,"I");
	
	replacedText = replacedText.replace(/à/g,"a");
	replacedText = replacedText.replace(/ä/g,"a");
	replacedText = replacedText.replace(/â/g,"a");
	replacedText = replacedText.replace(/ã/g,"a");
	replacedText = replacedText.replace(/á/g,"a");
	replacedText = replacedText.replace(/é/g,"e");
	replacedText = replacedText.replace(/è/g,"e");
	replacedText = replacedText.replace(/ë/g,"e");
	replacedText = replacedText.replace(/ê/g,"e");
	replacedText = replacedText.replace(/ô/g,"o");
	replacedText = replacedText.replace(/ò/g,"o");
	replacedText = replacedText.replace(/ó/g,"o");
	replacedText = replacedText.replace(/õ/g,"o");
	replacedText = replacedText.replace(/ö/g,"o");
	replacedText = replacedText.replace(/ì/g,"i");
	replacedText = replacedText.replace(/í/g,"i");
	replacedText = replacedText.replace(/î/g,"i");
	replacedText = replacedText.replace(/ï/g,"i");
	
	return(replacedText);
	
}



function CustomPassAjaxResponseToFunction(url)
{
  var xmlhttp = new GetXmlHttp();
  if (xmlhttp)
  {
    xmlhttp.onreadystatechange = 
            function ()
            {	
				
              if (xmlhttp && xmlhttp.readyState==4)
              {
			  	
                if (xmlhttp.status==200)
                {
                  var response = xmlhttp.responseText;
				  InitSuggestions(response)
				}
              }
            }
    xmlhttp.open("GET",url,true);
	isBusy = true;
    xmlhttp.send(null);
  }
}

function InitSuggestions(response) 
{

	CleanResponse = FilterContent(response)
	
	ListOfElem = CleanResponse.split('-*-')
	
	HotelArray = ListOfElem[0].split(';')
	
	var compSuggestions = [];
	
	for (var i=0; i < HotelArray.length; i++) 
	{ 
		//Complete list with Hotel Name, Hotel Id and DestinationCode
		compSuggestions.push(HotelArray[i].split('--'));
		
    }
    
	//Create the visual zone
	CreateHotelDropDown()
	oHotelBox = new AutoSuggestControl(document.getElementById("HotelField"), new HotelSuggestions(compSuggestions), 'Hotel');
}

function OnSelectionAction(id)
{
	/*alert('call destination link')*/
}

function CreateHotelDropDown()
{
	var refHotListBoxLength = "";
	var refHotListFixedBoxLength = 0;

	refHotListBoxLength = hotelListBoxLength;
	refHotListFixedBoxLength = hotelListFixedBoxLength;
		
	textInBox = document.getElementById("HotelContentTextBox").innerHTML
	
	if (refHotListFixedBoxLength > 0){
		document.getElementById("HOTELDD").innerHTML  = '<input type="text" name="HotelField" id="HotelField" maxlength="2048" autocomplete="off" value="' + textInBox + '" />'
	}else{
		document.getElementById("HOTELDD").innerHTML  = '<input type="text" name="HotelField" id="HotelField" size="' + refHotListBoxLength + '" maxlength="2048" autocomplete="off" value="' + textInBox + '" />'
	}
}



