$(document).ready(function(){
    $('.top_menu ul li').hover(
        function() {
            $(this).addClass("act");
            $(this).find('ul').stop(true, true);
            $(this).find('ul').show('fast');
        },
        function() {
            $(this).removeClass("act");
            $(this).find('ul').hide('fast');
        }
    );

    $('.sub').hover(
        function() {
            $(this).find('ol').show();

        },
        function() {
            $(this).find('ol').hide();

        }
    );
});
var isMSIE = '\v'=='v';
var coords = {'rostov': 800, 'oreburg': 2400, 'chelaba': 4800, 'kurgan': 3202, 'perm': 1599, 'ekateburg': 4000, 'tumen': 0};
var scoll_coords = {'rostov': new Array(430, 0), 'oreburg': new Array(430, 120), 'chelaba': new Array(430, 165), 'kurgan': new Array(430, 165), 'perm':  new Array(310, 140), 'ekateburg': new Array(340, 160), 'tumen': new Array(360, 165)}
var overObl = false;

function fixEvent(e) {
    e = e || window.event
    if ( e.pageX == null && e.clientX != null ) {
        var html = document.documentElement
        var body = document.body
        e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
        e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0)
    }
    if (!e.which && e.button) {
        e.which = e.button & 1 ? 1 : ( e.button & 2 ? 3 : ( e.button & 4 ? 2 : 0 ) )
    }
    return e;
}


function Move()
{
    var moveObject;
    var startPosition = new Array();
    var megastop = false;

    /*
    * небольшой хак, из-за того, что при попытке выделить текст во всплывающей подсказке, наша карта прокручивалась.
    */
    function infoOver()
    {
        var ids = new Array('info_ekateburg', 'info_rostov', 'info_oreburg', 'info_chelaba', 'info_kurgan', 'info_perm', 'info_tumen');
        for(var i = 0; i < ids.length; i++) {
            var canceled_div = document.getElementById(ids[i]);
            canceled_div.onmousedown = function() { megastop = true; }
            canceled_div.onmouseup = function(){megastop = false;}
        }
    }


    function mouseDown(e)
    {
        var e = fixEvent(e);
        if (e.which!=1) {
            return false;
        }
        if (isMSIE) {
            if(overObl) {
                return false;
            }
            if(megastop) {
                return false;
            }
        }

        moveObject = this;
        moveObject.className = "mapb";
        document.onmousemove = mouseMove;
        document.onmouseup = mouseUp;
        document.ondragstart = function() { return false  }
        document.body.onselectstart = function() { return false }

        startPosition[0] = Math.abs(moveObject.scrollLeft) + e.clientX;
        startPosition[1] = Math.abs(moveObject.scrollTop) + e.clientY;
    }

    function mouseMove(e)
    {
        if (!isMSIE) {
            if(megastop) {
                return false;
            }
        }
        if (moveObject) {
            var e = fixEvent(e);
            moveObject.scrollTop = startPosition[1] - e.clientY;
            moveObject.scrollLeft = startPosition[0] - e.clientX;
        }
    }

    function mouseUp(e)
    {
        moveObject.className = "map";
        moveObject = null;
        document.onmousemove = null;
        document.onmouseup = null;
        document.ondragstart = null;
        document.body.onselectstart = null;
        startPosition = new Array();
    }


    return {
        init: function(element){
            infoOver();
            document.getElementById(element).onmousedown = mouseDown
        }
    }
}


function selectCity(name)
{
    if (isMSIE) {
        overObl = true;
    }

    $('#selected_obl').css('backgroundPosition', '0px -'+coords[name]+'px');
}

function deselectCity()
{
    overObl = false;
    $('#selected_obl').css('backgroundPosition', '510px 0');
}


function hideOblInfo()
{
    $('.obl_info').stop().hide();
}

function showOblInfo(name)
{
    hideOblInfo();
    scrollToOblInfo(name);
    $('#info_'+name).fadeIn();
}

function scrollToOblInfo(name)
{
   $('#world_map').animate({scrollTop: scoll_coords[name][0], scrollLeft: scoll_coords[name][1]});
}