var mLines = 'hide';
var mSel = 'no';
var miSel = -1;
var i = 1;
var cities = new Array();
var micli = true;
var ajsmenu = false;


function check_cities(keyCode,target,event,paramethr)
{
    if ((typeof(keyCode) == 'undefined') || ((keyCode >= 65) && (keyCode <= 122)) || (keyCode == 8) || (keyCode == 0))
    {
        mSel = 'no';
        miSel = -1;


        if ($('search_city').get('value').length >= 1 && $('onlycity').get('value')==1)
        {
            var city_reqvest = $('search_city').get('value');
            var city_reqvest_str = encodeURIComponent(city_reqvest);

            var url = 'ajax.php?target='+target+'&event='+event+'&city=' + city_reqvest_str ;
            if ($defined($('oblasty'))){
                if ($('oblasty').get('value') != false) url = url+'&obl_id='+$('oblasty').get('value');
            }
            var ajax = new Request.JSON({
                url: url,
                onComplete: update_check_cities2.bind(this)
            }).get(this);

        }
        else if ($('search_city').get('value').length >= 1)
        {
            var city_reqvest = $('search_city').get('value');

            var city_reqvest_str = encodeURIComponent(city_reqvest);

            var url = 'ajax.php?target='+target+'&event='+event+'&city=' + city_reqvest_str ;



            var ajax = new Request.JSON({
                url: url,
                onComplete: update_check_cities.bind(this)
            }).get(this);

        }
        else
        {
            $('ajaxcity').set('html','');
            mLines = 'hide';
            mHide();
        }
        if ($defined($('event'))){
            $('event').set('value','city');
        }
        if ($defined($('city_id'))){
            $('city_id').set('value','');
        }
    }
    else
    {
        if (cities.length != 0)
        {
            //down key
            if (keyCode == '40')
            {
                if (miSel == -1)
                {
                    miSel = 0;
                    mOver(cities[miSel]);
                    miClick(mSel,true);
                }
                else if (miSel < (cities.length - 1))
                {
                    miSel++;
                    mOver(cities[miSel]);
                    miClick(mSel,true);
                }
            }
            //up key
            else if (keyCode == '38')
            {
                if (miSel > -1)
                {
                    miSel--;
                    mOver(cities[miSel]);
                    miClick(mSel,true);
                }
            }
            //escape
            else if (keyCode == '27')
            {
                mHide();
            }
            else
            {
                if ($defined($('event'))){
                    $('event').set('value', 'city');
                }
                if ($defined($('city_id'))){
                    $('city_id').set('value', '');
                }
            }

            if (keyCode == '13')
            {
                if ((miSel > -1) && (miSel < cities.length))
                {
                    miClick(mSel,false);
                }

            }

        }

    }
}

function update_check_cities(response)
{
    //	alert (response);
    result = response;

    if (result.result)
    {
        if(Browser.Engine.trident){
            if ($defined($('monthyear1'))){
                $("monthyear1").setStyle('visibility', 'hidden');
                $("day1").setStyle('visibility', 'hidden');
                $("monthyear2").setStyle('visibility', 'hidden');
                $("day2").setStyle('visibility', 'hidden');
            }
        }
        var text = '';
        cities = new Array();
        mLines = 'hide';
        i = Math.random();
        $each(result.result.city, function(item, index)
        {
            mLines = 'show';
            if (item.country_id == 114){
                fontement = '<font color="green">';
                fontementend = '</font>';}
            else{
                fontement='';
                fontementend='';
            }
            text += '<div class="DropMenuItem" id = "city' + i + 'c' + item.city_id
            + '" onclick = "mClick(this,false)"  onmouseover = "miOver(this)"><div id = "icity' + i + 'c' + item.city_id
            + '" style = "display: none">' + item.city_name
            + '</div><div id = "dcity' + i + 'c' + item.city_id + '" style = "display: none">'
            + item.city_id + '</div><div id = "ncity' + i + 'c' + item.city_id + '" style = "display: none">'
            + 'city' + '</div><div id = "jcity' + i + 'c' + item.city_id + '" style = "display: none">'
            + cities.length + '</div><span class="DropMenuItemName">'
            + fontement + item.city_name  + ', ' + item.country_name + fontementend + '</span><span class="DropMenuItemFeature">город</span></div>\n';
            cities[cities.length] = 'city' + i + 'c' + item.city_id;
        }
        );
//            alert (text);
        if(result.result.hotel){
            text +='<div class="LineRozdilHotel"></div><div class="LineRozdilHotelTwo"></div>';
            $each(result.result.hotel, function(item, index)
            {
                mLines = 'show';
                text += '<div class="DropMenuItem" id = "hotel' + i + 'c' + item.hotel_id
                + '" onclick = "mClick(this,false)"  onmouseover = "miOver(this)"><div id = "ihotel' + i + 'c' + item.hotel_id
                + '" style = "display: none">' + item.hotel_name
                + '</div><div id = "dhotel' + i + 'c' + item.hotel_id + '" style = "display: none">'
                + item.hotel_id + '</div><div id = "nhotel' + i + 'c' + item.hotel_id + '" style = "display: none">'
                + 'hotel' + '</div><div id = "jhotel' + i + 'c' + item.hotel_id + '" style = "display: none">'
                + cities.length + '</div><span class="DropMenuItemName">' + item.hotel_name + ', '+ item.city_name + ', ' + item.country_name + '</span><span class="DropMenuItemFeature">отель</span></div>\n';
                cities[cities.length] = 'hotel' + i + 'c' + item.hotel_id;
            }
            );
        }
        $('ajaxcity').set('html', text);

        if (mLines == 'hide')
        {
            mHide();
            if($defined($('city_id'))){
                $('city_id').set('value','');
            }
        }
        else
        {
            mShow();
        }
    }

}

function update_check_cities2(response)
{
    //	alert (response);
    result = response;

    if (result.result)
    {
        if(Browser.Engine.trident){
            if ($defined($('monthyear1'))){
                $("monthyear1").setStyle('visibility', 'hidden');
                $("day1").setStyle('visibility', 'hidden');
            }
            if ($defined($('monthyear2'))){
                $("monthyear2").setStyle('visibility', 'hidden');
                $("day2").setStyle('visibility', 'hidden');
            }
        }
        var text = '';
        cities = new Array();
        mLines = 'hide';
        i = Math.random();

        $each(result.result.city, function(item, index)
        {
            mLines = 'show';
            if (item.country_name != ''){
                var contrynamejs = ', ' + item.country_name
                }
            if (item.country_name == ''){
                var contrynamejs = ''
                }
            text += '<div class="DropMenuItem" id = "city' + i + 'c' + item.city_id
            + '" onclick = "mClick(this,false)"  onmouseover = "miOver(this)"><div id = "icity' + i + 'c' + item.city_id
            + '" style = "display: none">' + item.city_name
            + '</div><div id = "dcity' + i + 'c' + item.city_id + '" style = "display: none">'
            + item.city_id + '</div><div id = "ncity' + i + 'c' + item.city_id + '" style = "display: none">'
            + 'city' + '</div><div id = "jcity' + i + 'c' + item.city_id + '" style = "display: none">'
            + cities.length + '</div><span class="DropMenuItemName">'
            + item.city_name + contrynamejs + '</span></div>\n';

            cities[cities.length] = 'city' + i + 'c' + item.city_id;
        }
        );

        $('ajaxcity').set('html', text);

        if (mLines == 'hide')
        {
            mHide();
            if ($defined($('city_id'))){
                $('city_id').set('value','');
            }
        }
        else
        {
            mShow();
        }
    }

}

function mShow()
{
    var searchValue = $("search_city").get('value');

    $("search_city").removeProperty('style');
    if (searchValue == 'Город или Отель'){
        $("search_city").set('value', '');
    }
    if (micli == true)
    {
        micli = false;
    //		check_cities(0);
    }
    else if ($('ajaxcity').getStyle('display') == 'none' && (mLines == 'show'))
    {
        $('ajaxcity').setStyle('display', 'block');
    }
}


function mHide()
{
    if(Browser.Engine.trident){
        if ($defined($('monthyear1'))){
            $("monthyear1").setStyle('visibility', 'visible');
            $("day1").setStyle('visibility', 'visible');
            $("monthyear2").setStyle('visibility', 'visible');
            $("day2").setStyle('visibility', 'visible');
        }
    }
    if ($('ajaxcity').getStyle('display') == 'block')
    {
        mOut(mSel);
        mSel = 'no';

        $('ajaxcity').setStyle('display', 'none');
    }
}

function miClick(t,hd)
{
    if($('n' + t).get('html')!="hotel"){
        if ($defined($('search_city'))){
            $('search_city').set('value' , $('i' + t).get('html'));
        }
        if ($defined($('city_id'))){
            $('city_id').set('value', $('d' + t).get('html'));
        }
        if ($defined($('event'))){
            $('event').set('value','hotel');
        }
    }else{
        if ($defined($('search_city'))){
            $('search_city').set('value' , $('i' + t).get('html'));
        }
        if ($defined($('city_id'))){
            $('city_id').set('value', $('d' + t).get('html'));
            $('city_id').set('name', 'hotel_id');
        }
        if ($defined($('event'))){
            $('event').set('value','hotel');
        }
        if ($defined($('target'))){
            $('target').set('value','view');
        }
    }
    if (hd != true){
        mHide();
    }
    micli = true;
}

function mClick(t)
{
    miClick(t.id);
}

function mOut(t)
{	//alert('h ' + t);
    if (t != 'no') if (document.getElementById(t) != null)
    {
        $(t).set('class', 'DropMenuItem');
    }
}


function mOver(t)
{
    if (t != mSel)
    {
        if (document.getElementById(t) != null) $(t).set('class', 'DMHover');
        mOut(mSel);
        mSel = t;
        miSel = $('j' + t).get('html');
    }
}

function miOver(t)
{
    mOver(t.id);
}

function mBHide()
{
    if (!ajsmenu) mHide();
}

function ajsFocus()
{
    ajsmenu = true;
}

function ajsHide()
{
    ajsmenu = false;
}



