/* $Id: greybox.js,v 1.2 2008/12/04 11:32:23 Gurpartap Exp $ */
/**
* Greybox Redux
* jQuery is required (included in Drupal 5): http://jquery.com/
* Written by: John Resig
* License: GPL
*/
var GB_DONE = false;
var GB_SITEPATH = null;
var GB_HEIGHT = null;
var GB_WIDTH = null;
Drupal.behaviors.greybox = function() {
GB_SITEPATH = Drupal.settings.greybox.path;
var windowHeight = self.innerHeight ||
jQuery.boxModel && document.documentElement.clientHeight ||
document.body.clientHeight || 600;
var windowWidth = self.innerWidth ||
jQuery.boxModel && document.documentElement.clientWidth ||
document.body.clientWidth || 800;
$('a.' + Drupal.settings.greybox.class_text).bind('click', function(){
var title = this.title || $(this).text() || this.href;
var dims = $(this).attr('rel');
dims = dims.split(/x/i, 2);
GB_WIDTH = dims[0] || Drupal.settings.greybox.gbwidth || Math.round(windowWidth - (windowWidth/100)*10);
GB_HEIGHT = dims[1] || Drupal.settings.greybox.gbheight || Math.round(windowHeight - (windowHeight/100)*10);
GB_show(title, this.href);
return false;
});
}
function GB_show(caption, url) {
if(!GB_DONE) {
// TM 14122008 removing title and close button
// $(document.body).append("
");
$(document.body)
.append(""
+ "

");
$("#GB_window img").click(GB_hide);
$("#GB_overlay").click(GB_hide);
$(window).resize(GB_position);
$(window).scroll(GB_position);
GB_DONE = true;
}
$("#GB_frame").remove();
$("#GB_window").append("");
$("#GB_caption").html(caption);
$("#GB_overlay").fadeIn(350);
GB_position();
$("#GB_window").css({ height: 0, width: 0 }).animate({ height: GB_HEIGHT, width: GB_WIDTH, opacity: 1 }, 350, GB_position);
$('body').css('overflow', 'hidden');
/*
var left = document.all ? iebody.scrollLeft : pageXOffset;
var top = document.all ? iebody.scrollTop : pageYOffset;
$(document).bind('scroll', function() {
scrollTo(left, top);
});
*/
}
function GB_hide() {
$("#GB_window").animate({ height: 0, width: 0, opacity: 0 }, 350);
$("#GB_overlay").fadeOut(350, function() {
$('body').css('overflow', 'auto');
});
}
// Keep Greybox Window centered regardless of window scroll.
// Code from http://jquery.com/blog/2006/02/10/greybox-redux/
function GB_position() {
var de = document.documentElement;
var h = self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;
var w = self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
var iebody = (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
var dsocleft = document.all? iebody.scrollLeft : pageXOffset;
var dsoctop = document.all? iebody.scrollTop : pageYOffset;
var height = h < GB_HEIGHT ? h - 32 : GB_HEIGHT;
var top = (h - height)/2 + dsoctop;
$("#GB_window, #GB_frame").css({ width: GB_WIDTH + "px", height: height + "px",
left: ((w - GB_WIDTH)/2) +"px", top: top + "px" });
$("#GB_frame").css("height", height - 32 + "px");
}