/* Greybox Redux
 * Required: http://jquery.com/
 * Written by: John Resig
 * Based on code by: 4mir Salihefendic (http://amix.dk)
 * License: LGPL (read more in LGPL.txt)
 */

var GB_DONE = false;
var GB_HEIGHT = 400;
var GB_WIDTH = 400;
var GB_ANIMATION = false;

function GB_show(caption, url, height, width) {
    GB_HEIGHT = height || 400;
    GB_WIDTH = width || 400;
    if(!GB_DONE) {
        $(document.body)
            .append("<div id='GB_overlay'></div><div id='GB_window'><div id='GB_caption'></div>"
                    + "<img src='img/jquery.greybox.close.gif' alt='Close window'/></div>");
        $("#GB_window img").click(GB_hide);
        $("#GB_overlay").click(GB_hide);
        $(window).resize(GB_position);
        GB_DONE = true;
    }

    $("#GB_frame").remove();
    $("#GB_window").append("<iframe id='GB_frame' src='"+url+"'></iframe>");

    $("#GB_caption").html(caption);
    var de = document.documentElement;
    var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
    var h = GB_getHeight();
    //h = $('body:first').height();
    //alert(' w:'+ w + ' h:' + h);
    $("#GB_overlay").height(h).width(w).show();
    GB_position();

    if(GB_ANIMATION)
        $("#GB_window").slideDown("slow");
    else
        $("#GB_window").show();
}

function GB_hide() {
  $("#GB_window,#GB_overlay").hide();
}

function GB_position() {
    var de = document.documentElement;
    var w = self.innerWidth  || (de&&de.clientWidth)  || document.body.clientWidth;
    var h = self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
    //var h = GB_getHeight();

    var left = (w - GB_WIDTH) / 2;
    var stop = GB_getScrollTop();
    var top  = ((h - GB_HEIGHT) / 2) + stop;

    //alert($('body').scrollTop());
    //alert(' w:'+ w + ' h:' + h + ' l:' + left + ' t:' + top + ' s:' + stop);
    
    $("#GB_window").css(
        {
          width:  GB_WIDTH+"px",
          height: GB_HEIGHT+"px",
          left:   left+"px",
          top:    top+"px"
          }
        );
    
    $("#GB_frame").css("height",GB_HEIGHT - 38 +"px");
}

function GB_getScrollTop() {
    //if (navigator.userAgent.match(/AppleWebKit\/\d.+Safari\/\d.+/)) {
    if (navigator.userAgent.match(/AppleWebKit/)) {
        return document.body.scrollTop;
    } else {
        return $('body').scrollTop();
        //return document.documentElement.scrollTop;
    }
}

function GB_getHeight() {
    //if (navigator.userAgent.match(/AppleWebKit\/\d.+Safari\/\d.+/)) {
    if (navigator.userAgent.match(/AppleWebKit/)) {
        return document.body.clientHeight;
    } else {
        return $(document).height();
        //return document.documentElement.scrollTop;
    }
}
