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);
                }
            } else if (keyCode == '38') {
                if (miSel > -1) {
                    miSel--;
                    mOver(cities[miSel]);
                    miClick(mSel,true);
                }
            } 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);
                mHide();
                mBHide();
            }
        }
    }
}

function update_check_cities(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';
            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 + ', ' + item.country_name + '</span><span class="DropMenuItemFeature">город</span></div>\n';
            cities[cities.length] = 'city' + i + 'c' + item.city_id;
        });

        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.length + '</div><span class="DropMenuItemName">' + item.hotel_name + ', '+ item.city_name + '</span><span class="DropMenuItemFeature">отель</span></div>\n';
                cities[cities.length] = 'hotel' + i + 'c' + item.hotel_id;
            });
        }

        if (result.result.region) {
            text +='<div class="LineRozdilHotel"></div><div class="LineRozdilHotelTwo"></div>';
            $each(result.result.region, function(item, index) {
                mLines = 'show';
                text += '<div class="DropMenuItem" id = "region' + i + 'c' + item.region_id
                + '" onclick = "mClick(this,false)"  onmouseover = "miOver(this)"><div id = "iregion' + i + 'c' + item.region_id
                + '" style = "display: none">' + item.name
                + '</div><div id = "dregion' + i + 'c' + item.region_id + '" style = "display: none">'
                + item.region_id + '</div><div id = "nregion' + i + 'c' + item.region_id + '" style = "display: none">'
                + 'region' + '</div><div id = "jregion' + i + 'c' + item.region_id + '" style = "display: none">'
                + cities.length + '</div><span class="DropMenuItemName">' + item.name + '</span><span class="DropMenuItemFeature">регион</span></div>\n';
                cities[cities.length] = 'region' + i + 'c' + item.region_id;
            });
        }
        $('ajaxcity').set('html', text);

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

function update_check_cities2(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;
        });

        if (result.result.region) {
            $each(result.result.region, function(item, index) {
                text += '<div class="DropMenuItem" id = "region' + i + 'c' + item.region_id
                + '" onclick = "mClick(this,false)"  onmouseover = "miOver(this)"><div id = "iregion' + i + 'c' + item.region_id
                + '" style = "display: none">' + item.name
                + '</div><div id = "dregion' + i + 'c' + item.region_id + '" style = "display: none">'
                + item.region_id + '</div><div id = "nregion' + i + 'c' + item.region_id + '" style = "display: none">'
                + 'region' + '</div><div id = "jregion' + i + 'c' + item.region_id + '" style = "display: none">'
                + cities.length + '</div><span class="DropMenuItemName">'
                + item.name + '</span></div>\n';

                cities[cities.length] = 'region' + i + 'c' + item.region_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');
    if (searchValue == 'Город или Отель') $("search_city").set('value', '');
    if (micli == true) micli = false;
    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 ($defined($('search_city'))) $('search_city').set('value' , $('i' + t).get('html'));
    if($('n' + t).get('html')=="city") {
        if ($defined($('city_id'))) $('city_id').set('value', $('d' + t).get('html'));
        if ($defined($('target'))) $('target').set('value','search');
        if ($defined($('event'))) $('event').set('value','hotel');
        if ($defined($('region_id'))) $('region_id').set('value', '');
    } else if ($('n' + t).get('html')=="region") {
        if ($defined($('region_id'))) $('region_id').set('value', $('d' + t).get('html'));
        if ($defined($('target'))) $('target').set('value','search');
        if ($defined($('event'))) $('event').set('value','hotel');
    } else { //hotel
        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 ($defined($('region_id'))) $('region_id').set('value', '');
        if($('day1').get('value')!="" && $('day2').get('value')!="" && $('monthyear1').get('value')!="" && $('monthyear2').get('value')!="") $('checkAvail').set('value',1);
    }
    if (hd != true) mHide();
    micli = true;
}

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

function mOut(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;
}



