﻿
/*      Events      */
function mapTags_OnMouseOver(rootID) {
    $get(rootID).style.display = 'block';
}

function mapTags_OnMouseOut(rootID) {
    if (!mapTags_IsImageZoomed(rootID)) {
        $get(rootID).style.display = 'none';
    }
}
function mapTags_OnClick(rootID) {
    mapTags_ZoomIn(rootID);
}

function mapTags_OnImageMouseOver(rootID) {
    $get(rootID).style.display = 'block';
}

function mapTags_OnImageMouseOut(rootID) {
    if (!mapTags_IsImageZoomed(rootID))
        $get(rootID).style.display = 'none';    
}

function mapTags_OnImageClick(rootID) {
    if (mapTags_IsImageZoomed(rootID))
        mapTags_ZoomOut(rootID);
    else
        mapTags_ZoomIn(rootID)
}



/*      Functions      */
function mapTags_IsImageZoomed(rootID) {
    return (typeof($('#' + rootID).attr('hideLeft')) != 'undefined' && $('#' + rootID).attr('hideLeft') != $('#' + rootID).css('left'));
}

function mapTags_ZoomIn(rootID) {
    $('.maptags-zoom-root').each(function(index, elm) {
        if(mapTags_IsImageZoomed(elm.id))
            mapTags_ZoomImageOut(elm.id);
    });

    mapTags_ZoomImageIn(rootID);
}

function mapTags_ZoomOut(rootID) {
    mapTags_ZoomImageOut(rootID);
}

function mapTags_ZoomImageIn(rootID) {
    var left = $('#' + rootID).attr('showLeft');
    var top = $('#' + rootID).attr('showTop');
    var width = $('#' + rootID).attr('showWidth');
    var height = $('#' + rootID).attr('showHeight');
    var parentOffset = $('#' + rootID).parent().offset();
    var documentSize = { width: parseInt($(document).width()) - 2, height: parseInt($(document).height()) - 2 };
    
    if (parseInt(top) < 0 && parentOffset.top < Math.abs(parseInt(top))) {
        top = (parentOffset.top * -1) + 'px';
    }
    if (parseInt(left) < 0 && parentOffset.left < Math.abs(parseInt(left))) {
        left = (parentOffset.left * -1) + 'px';
    }

    if (parseInt(width) > documentSize.width) {
        var res = new MyResolution(parseInt(width), parseInt(height));
        res = res.changeKeepRatio(documentSize.width, documentSize.height);
        width = res.width + 'px';
        height = res.height + 'px';
    }

    $('#' + rootID).css('opacity', 0.5);
    $('.maptags-zoom-icon', $get(rootID)).css('display', 'none');
    $('.maptags-zoom-tooltip', $get(rootID)).css('display', 'none');
    $('.maptags-zoom-image', $get(rootID)).css('display', 'block');

    $('#' + rootID).animate({
        left: left,
        top: top,
        width: width,
        height: height,
        opacity: 1
    },
    500,
    function() {
        $get(rootID).style.display = 'block';
    }
    );
}

function mapTags_ZoomImageOut(rootID) {
    var left = $('#' + rootID).attr('hideLeft');
    var top = $('#' + rootID).attr('hideTop');
    var width = $('#' + rootID).attr('hideWidth');
    var height = $('#' + rootID).attr('hideHeight');

    
    $('#' + rootID).animate({
        left: left,
        top: top,
        width: width,
        height: height,
        opacity: 0.5
    },
    500,
    function() {
        $get(rootID).style.display = 'none';
        $('#' + rootID).css('opacity', 1);
        $('.maptags-zoom-icon', $get(rootID)).css('display', 'block');
        $('.maptags-zoom-tooltip', $get(rootID)).css('display', 'block');
        $('.maptags-zoom-image', $get(rootID)).css('display', 'none');
    }
    );
}
