﻿"use strict";

var floorplan = {

    down: null,

    init: function () {
        $('.floorplan').bind('dragstart', base.nope);
        base.subscribe('keydown', floorplan.keydown);
        base.subscribe('resize', floorplan.resize);
    },

    keydown: function (k) {
        if (k == 27 && floorplan.mediaOpen) {
            floorplan.mediaClose();
        }
    },

    mediaClick: function (e) {
        var d = floorplan.down;
        if (d) {
            var l = Math.abs(d.x - e.pageX) + Math.abs(d.y - e.pageY);
            if (l > 20) { return false; }
        }
        floorplan.mediaClose();
    },

    mediaClose: function () {
        var mc = $('.floorplan-dialog');
        if (mc.length) { mc.remove(); }
        $('.floorplan-dialog').stop(true, false).animate({ opacity: 0 }, 300, function () { $(this).hide(); });
        floorplan.mediaOpen = false;
    },

    mediaOpen: false,

    mediaShow: function (t) {
        var m = $('.floorplan-dialog');
        if (m.length == 0) {
            m = $('<div class="floorplan-dialog fsize popin-container" hd-fsize="3"><div class="picbox loadnow container" hd-mediafit style="position: absolute; top: 1em; left: 1em; right: 1em; bottom: 1em;"></div><div class="popin-close ion-close"></div></div>').appendTo(document.body).bind('click', floorplan.mediaClick).mousedown(floorplan.mousedown).contextmenu(base.nope).bind('mousewheel', base.nope);
            $('.container', m).bind('dragstart', base.nope);
            base.resize();
		}
		var container = $('.container', m).attr({ 'hd-media': $(t).attr('hd-media'), 'hd-mediaext': $(t).attr('hd-mediaext'), 'hd-mediatype': $(t).attr('hd-mediatype2') });
		var url = $(t).attr('hd-mediaurl');
		if (url) {
			container.html('<iframe src="' + url + '" frameborder="0" style="position: absolute; top: 0; left: 0; display: block; margin: 0 auto; width: 100%; height: 100%;" />');
		}
		else {
			container.html('');
			base.picbox();
		}
        $(m).stop(true, false).css({ opacity: 0 }).show().animate({ opacity: 1 }, 300);
        floorplan.mediaOpen = true;
    },

    mediaUpdate: function () {
        $('.floorplan .content .picbox').each(function (i, o) {
            var scale = $(o).attr('hd-scalemedia');
            if (scale) {
                var sz = Math.max($(o).width(), $(o).height()) * Number(scale) * 0.107;
                $('.media-item', o).css({ borderWidth: sz * 0.0333, borderRadius: sz, margin: -sz * 0.5, width: sz, height: sz });
            }
        });
        base.picbox();
    },

    mousedown: function (e) {
        floorplan.down = { x: e.pageX, y: e.pageY };
    },

    resize: function () {
        $('.floorplan .content').css({ display: 'block' });
        $('.floorplan .content .picbox').css({ width: '', height: '' });
        base.picbox();
        $('.floorplan .content').css({ display: 'inline-block' });
        floorplan.mediaUpdate();
    },

    scale: 1

};

$(floorplan.init);
 