﻿/* JS for CSS-Popup */

// firebug not present
if(typeof(console) == "undefined") {
	var console = new Object();
	console.log = function (t) { alert(t); } ;
}

///// ***  POPUP SETTINGS  -  These can be modified by you   *** /////

// should the popup be created? 1=yes 0=no
var popDisplay = 1; 

// width of popup - will be written in css property
var popWidth = "358px";
// css background property of main area
var popBack = "#fff";

// when should the popup be displayed? 
// Format: YYYY MM DD HH MM SS   !!! month is 0-11 !!!
popFrom  = new Date(2008, 07, 31, 23, 41, 00);
popUntil = new Date(2008, 08, 26, 18, 00, 00);

// popup created at these page-ids - if array is empty it is always created - if var is null it is not created 
var popPids = new Array(); 
popPids.push(1);
popPids.push(75);
// popup createt at this portlets - may be empty or null -> show on all portlets
var popPortlets = "cmsNavigation";

// header-text
var popHeader = "Info";

// html content in main popup area
content = 
"<p>Das <span style='color:#F2971E; font-weight:normal;'>SelbstLernZentrum Saarbrücken</span> und die "+
"<span style='color:#F2971E; font-weight:normal;'>Weiterbildungsdatenbank Saar</span> "+
"laden zu einem gemeinsamen Aktionsstag mit Gewinnspiel ein.</p>"+
"<p style='text-align: center; margin: 1em 0;'><img src='data/1/media/weiterbildungstag08.png' alt='Gewinsspiel' /></p>"+
"<p>Freitag 26.Sept. 2008 10:00 - 17:00 Uhr <br />SelbstLernZentrum Saarbrücken Berliner Promenade.</p>"
;

// footer-link
var popFooterLink = "http://www.saarlernnetz.de/portal/cms/browse.do?state=enlarged&mode=view&action=1&newsId=429&pid=75&portlet=news";
var popFooterLinkIsExtern = 0; // open as extern link = 1 - else 0

///// ***  END POPUP SETTINGS  *** /////


// init pos
var cX = 0; var cY = 0; var elemX = 0; var elemY = 0;
var popIsIe = false;

var pophide = function(ev) {
	//var elem = document.getElementById(id); 
	//elem.style.display = 'none';
	if(typeof(ev) == "undefined") ev = event;
	var elem = ev.target ? ev.target.parentNode.parentNode : ev.srcElement.parentNode.parentNode;
	document.body.removeChild(elem);
};

var popDragStart = function(ev) {
	if(typeof(ev) == "undefined") ev = event;
	if(document.defaultCharset) { //IE
		popIsIe = true;  }

	//var elem = document.getElementById(id);
	var elem = ev.target ? ev.target.parentNode : ev.srcElement.parentNode;

	var sty = null;
	sty = getStyle(elem);
/*	if(window.getComputedStyle)
		sty  = window.getComputedStyle(elem, "");
	else if(elem.currentStyle) 
		sty  = elem.currentStyle;
	else if(popIsIe) 
		sty  = elem.style;
	else return;  */
	
	document.elemDragged = elem;
	
	cX = parseInt(ev.clientX); cY = parseInt(ev.clientY);
	elemX = parseInt(sty.left); elemY = parseInt(sty.top);
	
	if(popIsIe) { // IE needs EXTRAWURSCHT
		var oX = ev.offsetX; var oY = ev.offsetY;
		elemX  = cX - oX; elemY = cY - oY;
	}
	
	document.body.onmousemove = popDrag;
	document.body.onmouseup   = popDragEnd;
};

var popDrag = function(ev) {
	if(!ev) { ev = event; popIsIe = true; }  // IE
	var x = parseInt(ev.clientX); var y = parseInt(ev.clientY);
	var dX = x-cX; var dY = y-cY;
	var newX = elemX + dX; var newY = elemY + dY;
					
	document.elemDragged.style.left = newX+"px";
	document.elemDragged.style.top  = newY+"px";
};

var popDragEnd = function(ev) {
	document.body.onmousemove = "";
	document.body.onmouseup   = "";

	var newX = document.elemDragged.style.left;
	var newY = document.elemDragged.style.top;
	if(newX != "" && newY != "") 
		document.cookie = newX+"#"+newY;
	
	document.elemDragged = null;
};


var createPopup = function() {
	if(!popDisplay) return false;
	
	// date check
	var now = new Date();
	if(now < popFrom || now > popUntil)
		return false;

	// check pid
	var cont = 0;
	if(popPids == null) return;
	else if(popPids.length == 0) cont = 1;
	else {
		//var url = document.URL;
		var url = location.href;
		url = url.match(/pid=(\d+)/); 
		if(url == null) return false; // 'pid=$' not found
		url = url[1];
		for(var i=0; i<popPids.length; i++) { 
			if(url == popPids[i]) { // show popup on this site?
				cont = 1;
				break;
			}
		}
	}
	if(popPortlets != null && popPortlets != "") {
		var srch = location.search;
		srch = srch.match(/portlet=(\w+)/);
		if(srch != null && srch[1] && cont) {
			srch = srch[1];
			if(popPortlets != srch) cont = 0;
		}
	}
	if(!cont) { return false; } // no popup on this site

	// create elements
	
		// container
		var outer = document.createElement("div"); 
		outer.className = "pop"; 
		outer.id = "pop1"; // container
		
		// header
		var head  = document.createElement("div"); 
		head.className  = "pophead"; 
		head.onmousedown = popDragStart; 
		head.title="verschieben";
		headClose = document.createElement("span");
		headClose.onclick = pophide;
		headClose.title   = "schliessen";
		headClose.appendChild(document.createTextNode(" "));
		head.appendChild(headClose);
		head.appendChild(document.createTextNode(popHeader));
		outer.appendChild(head);
		
		// main
		var center= document.createElement("div"); 
		center.className= "popbody"; 
		center.innerHTML = content;
		if(typeof(popBack) != "undefined" && typeof(popBack) == "string") 
			center.style.background = popBack;
		outer.appendChild(center);
		
		// footer
		var footer = document.createElement("div");
		footer.className = "popfoot";
		if(popFooterLink && popFooterLink != "") {
			var link = document.createElement("a");
			link.href = popFooterLink;
			if(popFooterLinkIsExtern) link.className = "link-extern";
			link.appendChild(document.createTextNode("weitere Informationen..."));
			footer.appendChild(link);
		}
		else {
			footer.innerHTML = "&nbsp;";
		}
					
		outer.appendChild(footer);
		
	// get style
	var sty = null;
	sty = getStyle(outer);
/*	if(window.getComputedStyle)
		sty  = window.getComputedStyle(outer, "");
	else if(elem.currentStyle) 
		sty  = outer.currentStyle;
	else if(popIsIe) 
		sty  = outer.style;
	else return; */
	
	// get cookie pos if available
	if(document.cookie) {
		var pos = document.cookie;
		
		if(typeof(pos) == "string") {
			pos = pos.match(/\d*px/g);

			if(pos && pos.length == 2) {
				// set popup pos
				outer.style.left = pos[0];
				outer.style.top  = pos[1];
			}
		}
	}	
		
	// set popup width
	if(typeof(popWidth) != "undefined" && typeof(popWidth) == "string") 
		outer.style.width = popWidth;

	// attach node
	document.body.appendChild(outer);
};

// get style for elem
function getStyle(el) {
  if (document.defaultView && document.defaultView.getComputedStyle) {
    return document.defaultView.getComputedStyle(el, null);
  } else if (el.currentStyle) {
    return el.currentStyle;
  } else {
    return el.style;
  }
}
