function isIE6Img() {isIE6 = !(/opera/.test(navigator.userAgent.toLowerCase())) && (/msie 6/.test(navigator.userAgent.toLowerCase()));if (isIE6 == true) {return 'gif';}return 'png';}
var bubbleMargins = {
top:      33,
bottom:   42,
left:     33,
right:    40
}

var arrowOffsets = {
top:      0,
bottom:   0,
left:     0,
right:    0
}
var bubblePadding = 15;var bubblePointOffset = 0;var halfArrowWidth = 0;var an=navigator.appName.toLowerCase();var ua=navigator.userAgent.toLowerCase();isIE=(an.indexOf("microsoft")!=-1);isNetscape=(an.indexOf("netscape")!=-1);isMozilla=(ua.indexOf("mozilla")!=-1);isFirefox=(ua.indexOf("firefox")!=-1);isOpera=(an.indexOf("opera")!=-1);majorVersion = 7;var pngIsTranslucent = (!isIE)||(majorVersion>6);
function showBubble(activeDiv){	dim = getDivDimension(activeDiv);	var div = openBubbleForPoint(getLeftPos(activeDiv)+Math.round(dim[0]/2),getTopPos(activeDiv)-35-content_container.scrollTop, 300,120);	fillInfoBubble(div,activeDiv);};function showBubble2(activeDiv){	dim = getDivDimension(activeDiv);	var div = openBubbleForPoint(getLeftPos(activeDiv)+Math.round(dim[0]/2),getTopPos(activeDiv)-35, 350,170);	fillInfoBubble2(div,activeDiv);};
function openBubbleForPoint(pageX,pageY,width,height){	closeBubble();	tooltip=createBubbleForPoint(bodyDocument.ownerDocument,pageX,pageY,width,height);	return tooltip.content;};
function createBubbleForPoint(doc, pageX, pageY, contentWidth, contentHeight){

var bubble = {
id : 1,
_closed:    false,
_doc:       doc,
close:      function() {
if (!this._closed) {
this._doc.body.removeChild(this._div);

this._doc = null;
this._div = null;
this._content = null;
this._closed = true;
}
}
};

var dims = windowsize();
var docWidth = dims[0];
var docHeight = dims[1];

var margins = bubbleMargins;
contentWidth = parseInt(contentWidth, 10); // harden against bad input bugs
contentHeight = parseInt(contentHeight, 10); // getting numbers-as-strings
var bubbleWidth = margins.left + contentWidth + margins.right;
var bubbleHeight = margins.top + contentHeight + margins.bottom;


var setImg = function(elmt, url, width, height) {

elmt.style.position = "absolute";
elmt.style.width = width + "px";
elmt.style.height = height + "px";
if (pngIsTranslucent) {
elmt.style.background = "url(" + url + ")";
} else {
elmt.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + url +"', sizingMethod='crop')";
}
}

var div = doc.createElement("div");
div.style.width = bubbleWidth + "px";
div.style.height = bubbleHeight + "px";
div.style.position = "absolute";
div.style.zIndex = 100000;
div.id="bubble-box";
bubble._div = div;

var divInner = doc.createElement("div");
divInner.style.position = "relative";
div.appendChild(divInner);

var createImg = function(url, left, top, width, height) {
var divImg = doc.createElement("div");
divImg.style.left = left + "px";
divImg.style.top = top + "px";
setImg(divImg, url, width, height);
divInner.appendChild(divImg);
}
createImg(image_bubble_path + "calendar_bubble-top-left." + isIE6Img(),0,0,margins.left,margins.top);
createImg(image_bubble_path + "calendar_bubble-top." + isIE6Img(), margins.left, 0, contentWidth, margins.top);
createImg(image_bubble_path + "calendar_bubble-top-right." + isIE6Img(), margins.left + contentWidth, 0, margins.right, margins.top);
createImg(image_bubble_path + "calendar_bubble-left." + isIE6Img(), 0, margins.top, margins.left, contentHeight);
createImg(image_bubble_path + "calendar_bubble-right." + isIE6Img(), margins.left + contentWidth, margins.top, margins.right, contentHeight);
createImg(image_bubble_path + "calendar_bubble-bottom-left." + isIE6Img(), 0, margins.top + contentHeight, margins.left, margins.bottom);
createImg(image_bubble_path + "calendar_bubble-bottom." + isIE6Img(), margins.left, margins.top + contentHeight, contentWidth, margins.bottom);
createImg(image_bubble_path + "calendar_bubble-bottom-right." + isIE6Img(), margins.left + contentWidth, margins.top + contentHeight, margins.right, margins.bottom);

var divClose = doc.createElement("div");
divClose.style.left = (bubbleWidth - margins.right + bubblePadding - 16 - 2) + "px";
divClose.style.top = (margins.top - bubblePadding + 1) + "px";
divClose.style.cursor = "pointer";
setImg(divClose, image_bubble_path + "calendar_close-button." + isIE6Img(), 16, 16);
divClose.onclick=closeBubble;

divInner.appendChild(divClose);
var divContent = doc.createElement("div");    divContent.style.position = "absolute";    divContent.style.left = margins.left + "px";    divContent.style.top = margins.top + "px";    divContent.style.width = contentWidth + "px";    divContent.style.height = contentHeight + "px";    divContent.style.overflow = "auto";    divContent.style.background = "white";    divInner.appendChild(divContent);    bubble.content = divContent;

(function() {
if (pageX - halfArrowWidth - bubblePadding > 0 &&
pageX + halfArrowWidth + bubblePadding < docWidth-100) {

var left = pageX - Math.round(contentWidth / 2) - margins.left;
left = pageX < (docWidth / 2) ?
Math.max(left, -(margins.left - bubblePadding)) :
Math.min(left, docWidth + (margins.right - bubblePadding) - bubbleWidth);

if (pageY - bubblePointOffset - bubbleHeight > 0) { // top
var divImg = doc.createElement("div");

divImg.style.left = (pageX - halfArrowWidth - left) + "px";
divImg.style.top = (margins.top + contentHeight) + "px";
setImg(divImg, image_bubble_path + "calendar_bubble-bottom-arrow." + isIE6Img(), 98, margins.bottom+45);
divInner.appendChild(divImg);

div.style.left = left + "px";
div.style.top = (pageY - bubblePointOffset - bubbleHeight +
arrowOffsets.bottom) + "px";

return;
}
}

var top = pageY - Math.round(contentHeight / 2) - margins.top;
top = pageY < (docHeight / 2) ?
Math.max(top, -(margins.top - bubblePadding)) :
Math.min(top, docHeight + (margins.bottom - bubblePadding) - bubbleHeight);


if (pageX - bubblePointOffset - bubbleWidth > 0) { // left


div.style.left = (pageX - bubblePointOffset - bubbleWidth +
arrowOffsets.right) + "px";
div.style.top = top + "px";
} else { 

div.style.left = (pageX + bubblePointOffset -
arrowOffsets.left) + "px";
div.style.top = top + "px";
}
})();

doc.body.appendChild(div);

return bubble;
};

function closeBubble(){
if(tooltip!=null){
tooltip.close();
tooltip=null;
}

};

function titleStyler(elmt){
elmt.className="timeline-event-bubble-title";
}
function bodyStyler(elmt){
elmt.className="timeline-event-bubble-body";
}

function fillInfoBubble2(elmt,e){
var doc=elmt.ownerDocument;
ajax_loadSpecialContent(elmt,'/xajax/calendar_form_addbubblevent.php?id='+e.id);
}
function fillInfoBubble(elmt,e){
var doc=elmt.ownerDocument;
var da = appointmentProperties[e.id]['eventStartDate'];

if (currentLang == 'de') {
var fromText = 'Von:';
var toText = 'Bis:';
var statTitle = 'Traffic Überblick: ';
dy = da.getFullYear();
dm = da.getMonth() + 1;
dd = da.getDate();
if ( dy < 1970 ) dy = dy + 100;
ys = new String(dy);
ms = new String(dm); 	 
ds = new String(dd); 	 
if ( ms.length == 1 ) ms = '0' + ms;
if ( ds.length == 1 ) ds = '0' + ds;
var titleDate = ds + '.' + ms + '.' + ys;
}
else if (currentLang == 'pl') {
var fromText = 'Od:';
var toText = 'Do:';
var statTitle = 'Przegl±d: ';
dy = da.getFullYear();
dm = da.getMonth() + 1;
dd = da.getDate();
if ( dy < 1970 ) dy = dy + 100;
ys = new String(dy);
ms = new String(dm); 	 
ds = new String(dd); 	 
if ( ms.length == 1 ) ms = '0' + ms;
if ( ds.length == 1 ) ds = '0' + ds;
var titleDate = ds + '-' + ms + '-' + ys;
}
else {
var fromText = 'From:';
var toText = 'To:';
var statTitle = 'Traffic: ';
var monthEN = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
dm = monthEN[da.getMonth()];
var fromText = 'From:';
var toText = 'To:';
var statTitle = 'Traffic: ';
dy = da.getFullYear();
dd = da.getDate();
if ( dy < 1970 ) dy = dy + 100;
ys = new String(dy);
ms = new String(dm); 	 
ds = new String(dd); 	 
var titleDate = ms + ' ' + ds + ', ' + ys;
}

hourS = da.getHours();
minHHS = new String(hourS); 	 
if ( minHHS.length == 1 ) minHHS = '0' + minHHS;
min = da.getMinutes();
minMM = new String(min); 	 
if ( minMM.length == 1 ) minMM = '0' + minMM;
var startHour = minHHS + ':' +  minMM;

var dend = appointmentProperties[e.id]['eventEndDate'];
hourE = dend.getHours();
minHHE = new String(hourE); 	 
if ( minHHE.length == 1 ) minHHE = '0' + minHHE;
minE = dend.getMinutes();
minMME = new String(minE); 	 
if ( minMME.length == 1 ) minMME = '0' + minMME;

var endHour = minHHE + ':' + minMME;

var title = statTitle + titleDate;
var link=getLink(elmt);
var image=getImage(elmt);

if(image!=null){
var img=doc.createElement("img");
img.src=image;

elmt.appendChild(img);
}

var divTitle=doc.createElement("div");

var textTitle=doc.createTextNode(title);
if(link!=null){
var a=doc.createElement("a");
a.href=link;
a.appendChild(textTitle);
divTitle.appendChild(a);
}else{
divTitle.appendChild(textTitle);
}
titleStyler(divTitle);
divTitle.style.color = colors[appointmentProperties[e.id]['calendar_id']][0];
elmt.appendChild(divTitle);

var divBody=doc.createElement("div");
fillDescription(divBody, '<b>' + fromText + ' ' + startHour + '<br /><br />' + toText + ' ' + endHour + "<br /><br />" + appointmentProperties[e.id]['title'] + "</b>");
bodyStyler(divBody);
elmt.appendChild(divBody);

var divTime=doc.createElement("div");
elmt.appendChild(divTime);

var divWiki=doc.createElement("div");
elmt.appendChild(divWiki);
};



function getText(div){return 'About Countomat';};
function getDescription(div){return 'Countomat description';};
function getImage(div){return div._image;};
function getLink(div){return div._link;};
function fillDescription(elmt,tekst){
elmt.innerHTML=tekst;
}
