This repository has been archived on 2025-06-21. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
suitedesk/sites/all/modules/calendar/jcalendar/jcalendar.js

82 lines
2.7 KiB
JavaScript

if (Drupal.jsEnabled) {
$(document).ready(function() {
// I am assuming that all of the links are refering to an internal node
// add the attribute rel=facebox to all of the links I want to have a popup
$('div.view-field > a').attr('class', 'popup');
// on click of a link
$('a.popup').click(function(a) {
// Make sure that other stuff is closed. This seems to cause a problem in Fx2 and IE7.
$('div#calpopup').fadeOut();
$('div#calpopup').remove();
// create div to hold data and add it to the end of the body
var div = $('<div id="calpopup"><div id="popup-close"><img id="popup-close-img" src="' + Drupal.settings.jcalendar.path + '/images/cross.png" /></div><div id="calpopup-body"><img src="' + Drupal.settings.jcalendar.path + '/images/throbber.gif" id="popthrobber" /></div></div>').attr('style','display: none');
div.appendTo(document.body);
// Locate Popup
var offset = $(this).offset();
// Check position with window width.
var offset_left = offset.left + 5;
if ($(window).width() < $('#calpopup').width() + offset.left) {
offset_left -= $('#calpopup').width() + 5;
if (offset_left < 0) {
offset_left = 0;
}
}
var offset_top = offset.top + 25;
if ($(window).height() < $('#calpopup').height() + offset_top) {
offset_top -= $('#calpopup').height() + 25;
if (offset_top < 0) {
offset_top = 0;
}
}
$('#calpopup').css('left', offset_left);
$('#calpopup').css('top', offset_top);
// Show Popup
$('#calpopup').fadeIn('slow');
// If sucessful call this
function domCallback(msg) {
$('#calpopup-body').html(msg);
}
// Get NodeID and ItemID
var ids = $(this).parent().parent().attr('class');
var arrs = ids.split(" ");
var arr = arrs[0].split(".");
var nid = arr[1];
var id = arr[4];
// fill the div with data
$.ajax({
type: "GET",
url: Drupal.settings.basePath + "?q=jcalendar/getnode/"+nid+"/"+ids,
success: function(msg){
domCallback(msg);
}
});
// On click of the close image
$('img#popup-close-img').click(function(x) {
$('div#calpopup').fadeOut();
$('div#calpopup').remove();
});
$(document).click(function(y) {
var $tgt = $(y.target);
if (!$tgt.parents().is('div#calpopup')) {
$('div#calpopup').fadeOut();
$('div#calpopup').remove();
$(document).unbind("click");
}
});
// Don't Follow the real link
return false;
});
});
}