﻿(function($) {
    $.fn.advancedpanorama = function(options) {
        this.each(function() {
            var settings = {
                viewport_width: 555,
                speed: 20000,
                direction: 'left',
                control_display: 'auto',
                start_position: 0
            };
            var panoViewport = $(this);
            var panoContainer = panoViewport.find('.panorama-container');
            var panoImg = panoContainer.find('img');
            var imgTitle = panoImg.attr('title');
            if (!imgTitle)
                imgTitle = panoImg.attr('alt');

            var panoImgWidth = parseInt(panoImg.attr('width'));
            var mapId = panoImg.attr('usemap');
            var areaId = 0;

            $('map[@name=' + mapId + ']').find('area').each(
				function() {
				    switch ($(this).attr("shape").toLowerCase()) {
				        case 'rect':
				            var areacoord = $(this).attr("coords");
				            var areaalt = $(this).attr("alt");
				            if (areaalt != '') {
				                areaalt = areaalt.replace("'", "&#146;");
				                areaalt = areaalt.replace('"', '&quot;');

				            }
				            var areaclass = $(this).attr("class");
				            if (areaclass != '')
				                areaclass = " " + areaclass;
				            var areahref = $(this).attr("href");
				            var areacoordArray = coords_fill(areacoord);
				            panoContainer.append("<a class='panorama-area area" + areaId + areaclass + "' style='position: absolute; left: " + areacoordArray[0] + "px; top: " + areacoordArray[1] + "px; width: " + (areacoordArray[2] - areacoordArray[0]) + "px; height: " + (areacoordArray[3] - areacoordArray[1]) + "px;' onmouseover='javascript:area_hover(" + areaId + ")' onmouseout='javascript:area_out(" + areaId + ")' href='" + areahref + "' title='" + areaalt + "'>&nbsp;</a>");
				            panoContainer.append("<a class='panorama-area area" + areaId + areaclass + "' style='position: absolute; left: " + (panoImgWidth + parseInt(areacoordArray[0])) + "px; top: " + areacoordArray[1] + "px; width: " + (areacoordArray[2] - areacoordArray[0]) + "px; height: " + (areacoordArray[3] - areacoordArray[1]) + "px;' onmouseover='javascript:area_hover(" + areaId + ")' onmouseout='javascript:area_out(" + areaId + ")' href='" + areahref + "' title='" + areaalt + "'>&nbsp;</a>");
				            areaId++;
				            break;
				        case 'circle': break;
				        case 'poly': break;
				    }
				}).remove();
            panoContainer.find('a.panorama-area').bind('click', function() {
                $(panoContainer).stop();
            });
            if (imgTitle) {
                panoViewport.append("<p class='flipv panorama-title'>" + imgTitle + "</p>");
            }

        });
    };


    $(document).ready(function() {
        $(".panorama-viewport").advancedpanorama();
    });


})(jQuery);

function coords_fill(mycoords) {
    var position1 = 0;
    var position2 = 0;

    var tabresult = new Array();
    while ((position2 = mycoords.indexOf(',', position1)) >= 0) {
        tabresult.push(mycoords.substring(position1, position2));
        position1 = position2 + 1;
        position2 = position1 + 1;
    }
    tabresult.push(mycoords.substring(position1));

    return tabresult;
}
function area_hover(areaId) {
    $('.area' + areaId).addClass('panorama-area-hover').addClass('area' + areaId + '-hover');
}
function area_out(areaId) {
    $('.area' + areaId).removeClass('panorama-area-hover').removeClass('area' + areaId + '-hover');
}
