function Intellisense(e)
{
    var key = window.event ? e.keyCode : e.which;
    if (key == "40") // Up arrow
	{
        if ($('#intsense').attr('innerHTML') != '')
        {
            if ($('#intsense').children().children().children('.intellisenseSelected').length > 0)
            {
                $('#intsense').children().children().children('.intellisenseSelected').next().attr('class', 'intellisenseSelected');
                $('#intsense').children().children().children('.intellisenseSelected').prev().attr('class', 'intellisense');
            }
            else
            {
                $('#is0').attr('class', 'intellisenseSelected');
            }
        }
	}	
	else if (key == "38") // Down arrow
	{
        if ($('#intsense').attr('innerHTML') != '')
        {
            $('#intsense').children().children().children('.intellisenseSelected').prev().attr('class', 'intellisenseSelected');
            $('#intsense').children().children().children('.intellisenseSelected').next().attr('class', 'intellisense');
        }
	    return false;
	}
	else
    {
        if ($('#ctl00_ContentPlaceHolder1_txtSearchBox').val().length > 2)
        {   
            $('#intsense').attr('innerHTML', '').hide();
            g_cityName = null;
            g_CountryISOCode = null;
            AjaxSearch.RetrieveList($('#ctl00_ContentPlaceHolder1_txtSearchBox').val(), UpdateCallback);
        }
        else 
        {
            $('#intsense').attr('innerHTML', '').hide();
          
        }
        return false;
    }
}
function onKeyPressBlockNumbers(e)
{    
	var key = window.event ? e.keyCode : e.which;
	
	if (key == "13")
	{	    	        
	    if ($('#intsense').children().children().children('.intellisenseSelected').length == 1)
	        $('#intsense').children().children().children('.intellisenseSelected').trigger('click');
	    return false;
	}	
}
function validateFields()
{
    $('#divErrorPB').hide();
    $('#intsense').attr('innerHTML', '').hide();
    var txtSearch = $('#ctl00_ContentPlaceHolder1_txtSearchBox').val();
    var hCountryISOCode = $('#ctl00_ContentPlaceHolder1_hCountryISOCode').val();
    var hCityName = $('#ctl00_ContentPlaceHolder1_hCityName').val();
    var hCountryName = $('#ctl00_ContentPlaceHolder1_hCountryName').val();
    var dtFrom = $('#ctl00_ContentPlaceHolder1_txtFrom').val();
    var dtTo = $('#ctl00_ContentPlaceHolder1_txtTo').val();
    
    if (trimAll(txtSearch) == "" )
    {
        $('#divError').attr('innerHTML', 'Please enter a search location.').show();
        $('#ctl00_ContentPlaceHolder1_txtSearchBox').focus();
        return false;
    }
    if (trimAll(hCountryISOCode) == "" || (trimAll(hCountryName) == "" && trimAll(hCityName) == ""))
    {
        $('#divError').attr('innerHTML', 'Please select an available destination from our suggested list.').show();
        $('#ctl00_ContentPlaceHolder1_txtSearchBox').focus();
        var sPath = window.location.pathname;
        var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);        
        AjaxSearch.insertInvalidDestinationTracking(sPage, txtSearch, UpdateCallback);
        
        return false;
    }
    if (trimAll(dtFrom) == "")
    {	
        $('#divError').attr('innerHTML', 'Please enter a FROM date. (YYYY-MM-DDDD)').show();
        $('#ctl00_ContentPlaceHolder1_txtFrom').focus();
        return false;
    }
    var date_from_month= dtFrom.substring(5,7); 	
	var	date_from_day  = dtFrom.substring(8,10);				
	var date_from_year = dtFrom.substring(0,4);
	
    if ((date_from_month > 12) || (date_from_month < 1) || (date_from_day > 31) || (date_from_day < 1) || (date_from_year > 2222) || (date_from_year < 1900) || (dtFrom.length != 10))
    {
        $('#divError').attr('innerHTML', 'Please enter a valid FROM date. (YYYY-MM-DDDD)').show();
        $('#ctl00_ContentPlaceHolder1_txtFrom').focus();
        return false;
    }
    
    if (trimAll(dtTo) == "")
    {	
        $('#divError').attr('innerHTML', 'Please enter a TO date. (YYYY-MM-DDDD)').show();
        $('#txtTo').focus();
        return false;
    }
    var date_to_month= dtTo.substring(5,7); 	
	var	date_to_day  = dtTo.substring(8,10);				
	var date_to_year = dtTo.substring(0,4);
	
    if ((date_to_month > 12) || (date_to_month < 1) || (date_to_day > 31) || (date_to_day < 1) || (date_to_year > 2222) || (date_to_year < 1900) || (dtTo.length != 10))
    {
        $('#divError').attr('innerHTML', 'Please enter a valid TO date. (YYYY-MM-DDDD)').show();
        $('#ctl00_ContentPlaceHolder1_txtTo').focus();
        return false;
    }
    $('#divError').attr('innerHTML', '').show();
    
    if ($('#ctl00_ContentPlaceHolder1_hCountryISOCode').val() == null) $('#ctl00_ContentPlaceHolder1_hCountryISOCode').val("");
    if ($('#ctl00_ContentPlaceHolder1_hCountryName').val() == null) $('#ctl00_ContentPlaceHolder1_hCountryName').val("");
    if ($('#ctl00_ContentPlaceHolder1_hCityName').val() == null) $('#ctl00_ContentPlaceHolder1_hCityName').val("");
    if ($('#ctl00_ContentPlaceHolder_WUCHotelFilters_hMin').val() == null) $('#ctl00_ContentPlaceHolder_WUCHotelFilters_hMin').val("");
    if ($('#ctl00_ContentPlaceHolder_WUCHotelFilters_hMax').val() == null) $('#ctl00_ContentPlaceHolder_WUCHotelFilters_hMax').val("");
    if ($('#ctl00_ContentPlaceHolder_WUCHotelFilters_hHigh').val() == null) $('#ctl00_ContentPlaceHolder__WUCHotelFilters_hHigh').val("");
    if ($('#ctl00_ContentPlaceHolder_WUCHotelFilters_hLow').val() == null) $('#ctl00_ContentPlaceHolder_WUCHotelFilters_hLow').val("");
    if (($('#ctl00_ContentPlaceHolder_WUCHotelFilters_hMinFilter').val() == '') || ($('#ctl00_ContentPlaceHolder_WUCHotelFilters_hMinFilter').val() == null))
    {
        UpdateSliderValues();
    }
    return true;
}

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 ArrangeObj()
{
    if(document.getElementById('ctl00_ContentPlaceHolder1_txtSearchBox') != null) 
    {
        var _position = findPos(document.getElementById('ctl00_ContentPlaceHolder1_txtSearchBox'));
        $('#intsense').css('left', _position[0] + 'px');
        $('#intsense').css('top', (_position[1] + 27) + 'px');
        if (document.getElementById('smarker') != null)
        {
            _position = findPos(document.getElementById('smarker'));
            $('#swrapper').css('left', (_position[0] + 5) + 'px');
            $('#swrapper').css('top', (_position[1] + 10) + 'px');
        }
    }
    
}
function SearchCallback(res)
{
    if (res)
    {
        // -> Use JSON parser instead of eval() for security reasons
        if (res.value == "No Record.") return false;
        var ds =  $.parseJSON(res.value);
        if (ds == null) return false;
        
        if (ds.length == 0)
        {
            ds = null;
            return false;
        }
        if (ds.strErr == 'SUCCESS')
        {
            $('#ctl00_ContentPlaceHolder1_txtSearchBox').val(ds.strCountryCity);
            $('#ctl00_ContentPlaceHolder1_hCityName').val(ds.strCityName);
            $('#ctl00_ContentPlaceHolder1_hCountryISOCode').val(ds.strCountryISOCode);
            $('#ctl00_ContentPlaceHolder1_hCountryName').val(ds.strCountryName);
            
        }
    }
}
function results_callback(res)
{
console.log(res);
//    if (res)
//    {
//        if (res.value == "No Record.") return false;
//        var ds =  $.parseJSON(res.value);
//        if (ds == null) return false;
//        console.log(ds);
//    }
}
function UpdateCallback(res)
{
    if (res)
    {
        // -> Use JSON parser instead of eval() for security reasons
        if (res.value == "No Record.") return false;
        var ds =  $.parseJSON(res.value);
        if (ds == null) return false;
        
        if (ds.length == 0)
        {
            $('#intsense').attr('innerHTML', '').hide();
            ds = null;
            return false;
        }
        if (ds[0].strErr == 'SUCCESS')
        {
            var array = new Array();
            array[array.length] = '<table style="width:300px" onmouseover=\"resetResultsFocus();\">';
            for(var i=0;i<ds.length;i++)
            {
                if (i == 0)
                    array[array.length] = '<tr id=is' + i + ' class=intellisenseSelected onclick=\"UpdateSearchString(\'' + ds[i].strCountryCity + '\',\'' + ds[i].strCityName + '\',\'' + ds[i].strCountryISOCode + '\',\'' + ds[i].strCountryName + '\');\"><td>';
                else
                    array[array.length] = '<tr id=is' + i + ' class=intellisense onclick=\"UpdateSearchString(\'' + ds[i].strCountryCity + '\',\'' + ds[i].strCityName + '\',\'' + ds[i].strCountryISOCode + '\',\'' + ds[i].strCountryName + '\');\"><td>';
                array[array.length] = ds[i].strCountryCity;
                array[array.length] = '</td></tr>';
            }
            array[array.length] = '</table>';
            FindNewHeight(ds.length);
            ArrangeObj();
            $('#intsense').attr('innerHTML', array.join("")).show();
        }
    }
}
function FindNewHeight(pNumber)
{
    var _total = pNumber * 19;
    $('#intsense').css('height', _total + 'px');
}
function UpdateSearchString(pNewString, pCityName, pCountryISOCode, pCountryName)
{
    $('#ctl00_ContentPlaceHolder1_txtSearchBox').val(pNewString);
    $('#ctl00_ContentPlaceHolder1_hCityName').val(pCityName);    
    $('#ctl00_ContentPlaceHolder1_hCountryISOCode').val(pCountryISOCode);
    $('#ctl00_ContentPlaceHolder1_hCountryName').val(pCountryName);
    $('#intsense').attr('innerHTML', '').hide();
}
function resetResultsFocus()
{
    $('#intsense').children().children().children('.intellisenseSelected').each(function(i)
        {
           $(this).attr('class', 'intellisense');
        }
    );
}
