﻿/***************************/
//@Author: Adrian "yEnS" Mato Gondelle
//@website: www.yensdesign.com
//@email: yensamg@gmail.com
//@license: Feel free to use it, but keep this credits please!	
//@Modified by: deawscm
/***************************/

//SETTING UP OUR POPUP
//0 means disabled; 1 means enabled;
var popupStatus = 0;

//disabling popup with jQuery magic!
function disablePopup() {
    //disables popup only if it is enabled
    var popupPage = $("#popup-content");

    if (popupStatus == 1) {
        $("#popup-background-wrapper").fadeOut("slow");
        popupPage.fadeOut("slow");
        $("div.popup-override-link").remove();

        popupStatus = 0;
    }
}

//centering popup
function centerPopup(obj) {
    //request data for centering
    var windowWidth = document.documentElement.clientWidth;
    var windowHeight = document.documentElement.clientHeight;
    var popupHeight = obj.height(); 
    var popupWidth = obj.width(); 
    //centering

    obj.css({
        "position": "absolute",
        "top": windowHeight / 2 - popupHeight / 2,
        "left": windowWidth / 2 - popupWidth / 2
    });

    // If popup over hight screen srt to top
    if (popupHeight > windowHeight)
        obj.css('top', '20px');

    //only need force for IE6

    $("#popup-background-wrapper").css({
        "height": windowHeight
    });
}

function handlePopupEvent() {
    // set image title
    $('a.popup-img').attr('title', 'Click for detail');

    //Click out event!
    $("#popup-background-wrapper").click(function () {
        disablePopup();
    });
    //Press Escape event!
    $(document).keypress(function (e) {
        if (e.keyCode == 27 && popupStatus == 1) {
            disablePopup();
        }
    });
}

function openPopup(url, linkUrl, target, w, h, autoScrolling) {
    var popupPage = $("#popup-content");

    popupPage.width(w);
    popupPage.height(h);

    // add mouse position to url parameter (deawscm@25/08/2011)
    var x = $('#mouse-position #x-pos').html();
    var y = $('#mouse-position #y-pos').html();

    if (url.indexOf('?') == -1)
        url += '?';

    url += 'xpos=' + x + '&ypos=' + y;
    //set scroll to top page
    $('html, body').animate({ scrollTop: 0 }, 500);

    loadPopup(popupPage, url, linkUrl, target, autoScrolling);
}

//loading popup with jQuery magic!
function loadPopup(popupPage, url, linkUrl, target, autoScrolling) {

    // remove old iframe
    popupPage.find('iframe').remove();

    // load new iframe
    $('<iframe />', {
        name: 'frmPopup',
        id: 'frmPopup',
        src: url,
        width: popupPage.width(),
        height: popupPage.height(),
        scrolling: autoScrolling == 1 ? 'auto' : 'no',
        frameborder: '0'
    }).appendTo(popupPage);
    
    // add close bottom
    popupPage.prepend("<div class='popup-close'></div>");
    var popupClose = popupPage.find("div.popup-close:first");
    popupClose.addClass('popup-close-overlay');
    popupClose.hover(function () { $(this).removeClass('popup-close-overlay') }, function () { $(this).addClass('popup-close-overlay') });
    popupClose.attr('title', 'Click here to close');
    popupClose.click(function (event) {
        disablePopup();
        event.stopPropagation();
    });

    // add override link
    if (linkUrl != '') {
        popupPage.prepend("<div class='popup-override-link'></div>");
        var popupLink = popupPage.find("div.popup-override-link");
        popupLink.width(popupPage.find('iframe').innerWidth());
        popupLink.height(popupPage.find('iframe').innerHeight());
        popupLink.click(function (event) {
            if (target == '_blank')
                window.open(linkUrl);
            else
                window.location = linkUrl;

            event.stopPropagation();
        });
    }

    centerPopup(popupPage);

    if (popupStatus == 0) {
        $("#popup-background-wrapper").fadeIn("slow");
        popupPage.fadeIn("slow");

        popupStatus = 1;
    }

    handlePopupEvent();
}
