/* 
 * Mallok & Wiegleb JavaScripts
 * (c) 2007 freshlabs
 * www.freshlabs.de
 */

Event.observe(window, "load", function(){
	var wid = "oeffnungszeiten";
	var c = readCookie("mallok-widget-active");
	if(c == null || c != "false"){
		var w = new Fl_Widget(wid);
	}else{
		var a = document.createElement('a');
		a.href="#";
		a.appendChild( document.createTextNode("Widget aktivieren") );
		Event.observe(a, "click", function(){
			createCookie("mallok-widget-active", "true", 21);
			var linkParent = document.getElementsByClassName('backtotop', 'footer')[0];
			var node = linkParent.lastChild;
			linkParent.removeChild(node);
			window.location.reload();
		});
		b=document.createTextNode(entity("&bull; "));
		document.getElementsByClassName('backtotop', 'footer')[0].appendChild(b);
		document.getElementsByClassName('backtotop', 'footer')[0].appendChild(a);
	}

});


var Fl_Widget = Class.create();

Fl_Widget.prototype = {
	widget : Object,
	draggable : Object,
	
	initialize : function(id){
		this.widget = $(id);
		this.draggable = new Draggable(this.widget);
		
		$(id).style.display = "block";
		$(id).style.position = "absolute";
		var closeSpan = document.getElementsByClassName('fl-widget-close', this.widget)[0];
		var closeLink = closeSpan.getElementsByTagName('a')[0];
		
		closeLink.onclick = function(){
			notifyContainer = document.getElementsByClassName('fl-widget-notify', this.widget)[0];
			if(notifyContainer.style.display == "none"){
				Effect.SlideDown(notifyContainer, {duration: 0.3});
			}
			else Effect.SlideUp(notifyContainer, {duration: 0.3});
			
			Event.observe('fl-widget-submit', "click", function(){
				if($('fl-widget-savecookie').checked != true){
					// Cookie erstellen, um das Widget dauerhaft zu verstecken
					createCookie("mallok-widget-active", "false", 21);
					$(id).style.display = "none";
					Effect.Fade(id, {duration: 0.2});
					window.location.reload();
				}else{ Effect.Fade(id, {duration: 0.2}); }
			});
			
			Event.observe('fl-widget-cancel', "click", function(){
				Effect.SlideUp(notifyContainer, {duration: 0.3});
			});
			
		};
	}
}

/* --------------------------- */
/* Cookie Functions            */
/* --------------------------- */

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function entity(str, mode) {
	str = (str) ? str : "";
	mode = (mode) ? mode : "string";

	var e = document.createElement("div");
	e.innerHTML = str;

	if (mode == "numeric") {
		return "&#" + e.innerHTML.charCodeAt(0) + ";";
	}
	else if (mode == "utf16") {
		var un = e.innerHTML.charCodeAt(0).toString(16);
		while (un.length < 4) un = "0" + un;
		return "\\u" + un;
	}
	else return e.innerHTML;
}