/*

I denne fil defineres den aktuelle kampagne

kampagne_aktiv      : er kampagnen aktiv (true/false)

kampagne_init indeholder følgende felter
- navn              : navnet på kampagnen (bruges til at styre cookies)
- hoejde            : højden på kampagnefeltet (i antal pixels)
- bredde            : bredden på kampagnefeltet (i antal pixels)
- top               : startplacering af kampagnefeltet i forhold til toppen af fknsiden (i antal pixels)
- venstre           : startplacering af kampagnefeltet i forhold til den sorte bjælke af fknsiden (i antal pixels)
- gennemsigtighed           : gennemsigtighed på baggrundsfarve i procent (eks 50). Skriv 100 for ikke at vise Overlay.
- baggrundsfarve     : baggrundsfarve (eks '892203')
- vis_hver_gang     : skal kampagnen vises hver gang man gør ind på siden ('ja') eller kun første gang ('nej') 
- kampagne_url			: url for kampagneside (standard er 'kampagneindhold.html')

Kampagne kan lukkes vha en knap, et link eller et kald vha javascript på kampagnesiden.

<input type='button' onclick='window.parent.kampagne_handler.luk()' value='Luk'>
<a href='javascript: window.parent.kampagne_handler.luk()'>Luk</a>
<script type="text/javascript">window.parent.kampagne_handler.luk();</script>

Kampagnen åbner automatisk, når siden er færdig med at loade (onLoad)
Ønskes det, at den starter tidligere, kan man indsætte følgende javascript lige over </body>

<script type="text/javascript">kampagne_handler.vis();</script>

*/

var kampagne_aktiv = false;
var kampagne_init = {
	
	'navn': 'giv_endnu_en_ged',
	'hoejde': '200',
	'bredde': '300',
	'top': '50',
	'venstre': '75',
	'gennemsigtighed': '80',
	'baggrundsfarve': '#d7dede',/*'#ff0000',*/
	'vis_hver_gang': 'ja',
	'kampagne_url': '/extra/kampagneindhold.html'

}






/* der må ikke ændres i nedenstående kode */

// * overlay 
var Overlay = Class.create(); 
Overlay.prototype = 
{
	initialize: function(transparens,bgcolor,handler) 
	{ 
		this.transparens = transparens;  
		this.bgcolor = bgcolor;  
		this.handler = handler;
		this.html = null;
	},
	
	synlig: function()
	{
		return (this.transparens!='100');
	},
	
	fknheight: function()
	{
	/*
		var body = document.body;
		Element.extend(body);
		var site = $('site'); // antager følgende htmlstruktur - html body div#site ... 
		return (site&&site.getHeight()>body.getHeight())?site.getHeight()+'px':'100%';
    */
    
	    return document.viewport.getHeight() + "px";
	},
	
    fknwidth: function()
	{
	    return document.viewport.getWidth() + "px";
	},
	
	vis: function()
	{
		if(this.html||!this.synlig()) return;
		this.html = document.createElement('div'); 
		Element.extend(this.html); 
		this.html.id = 'kampagneoverlay';
		// * calc height
		
		this.html.setStyle({
			'position':'absolute',
			'top':'0px',
			'left':'0px',
			'width':this.fknwidth(),
			'height':this.fknheight(),
			'zIndex':'98',
			'backgroundColor':''+this.bgcolor,
			'opacity':'.'+this.transparens
		}); 
		document.body.appendChild(this.html); 
		Event.observe(this.html, 'click', this.luk.bindAsEventListener(this));
		Event.observe(window, 'resize', this.resize.bindAsEventListener(this));
	},
	
	resize: function()
	{
		if(!this.html) return;
		this.html.setStyle({	
			'height':this.fknheight()
		}); 
	},
	
	skjul: function()
	{
		if(!this.html) return;
		Event.stopObserving(window, 'resize', this.resize.bindAsEventListener(this));
		Event.stopObserving(this.html, 'click', this.luk.bindAsEventListener(this));
		document.body.removeChild(this.html);
		this.html = null;
	},
	
	luk: function()
	{
		this.handler.luk();
	}
}

// * kampagne håndtering
var Kampagne = Class.create(); 
Kampagne.prototype = 
{
	initialize: function(t,l,w,h,url,handler)
	{ 
		this.hoejde = h;   
		this.bredde = w;   
		this.top = t;   
		this.venstre = l*1;   
		this.url = url;
		this.handler = handler;
		this.html = null;
	},
	
	fknleft: function()
	{
		var site = $('site'); // antager følgende htmlstruktur - html body div#site ... 
		return ((site?site.cumulativeOffset()['left']:'0')*1+this.venstre)+'px';
	},
	
	vis: function()
	{
		if(this.html) return;
		this.html = document.createElement('iframe'); 
		Element.extend(this.html); 
		this.html.id = 'kampagne';
		this.html.frameBorder = 0;
		this.html.src = this.url;
		this.html.setStyle({
			'position':'absolute',
			'top':this.top+'px' ,
			'left':this.fknleft(),
			'width':this.bredde+'px',
			'height':this.hoejde+'px',
			'zIndex':'99'
		}); 
		document.body.appendChild(this.html); 
		Event.observe(window, 'resize', this.resize.bindAsEventListener(this));
	},
	
	skjul: function()
	{
		if(!this.html) return;
		Event.stopObserving(window, 'resize', this.resize.bindAsEventListener(this));
		document.body.removeChild(this.html);
		this.html = null;
	},
	
	resize: function()
	{
		if(!this.html) return;
		this.html.setStyle({	
			'left':this.fknleft()
		}); 
	}
}

var Cookie = Class.create(); 
Cookie.prototype = 
{
	initialize: function(name)
	{
		this.name = name;
	},
	
  set: function(value, daysToExpire) 
  {
    var expire = '';
    if (daysToExpire != undefined)
    {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toGMTString();
    } 
    return (document.cookie = escape(this.name) + '=' + escape(value || '') + ';path=/' + expire );
  },
  
  get: function()
  {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(this.name) + '=([^;\\s]*)'));
    return (cookie ? unescape(cookie[2]) : null);
  }
  
};

// * kampagne håndtering
var KampagneHandler = Class.create(); 
KampagneHandler.prototype = 
{
	initialize: function()
	{ 
		if(!kampagne_aktiv)
		{
			this.synlig=true;
			return;
		}
		this.set(kampagne_init);
  	Event.observe(window, 'load', this.vis.bindAsEventListener(this));
	},
	
	set: function(init)
	{
		this.cookiename = 'fknkampagne';
		this.navn = init['navn'];  
		this.vis_hver_gang = init['vis_hver_gang'];  
		this.kampagne = new Kampagne(init['top'],init['venstre'],init['bredde'],init['hoejde'],init['kampagne_url'],this);
		this.overlay = new Overlay(init['gennemsigtighed'],init['baggrundsfarve'],this);
		this.synlig = false;		
	},
	
	test: function()
	{
		this.set(kampagne_init);
		this.vis();		
	},
	
	vis: function()
	{
		if(this.synlig) return;
		
		// * checker cookie
		var cookie = new Cookie(this.cookiename);
	  if(cookie.get()==this.navn) return;
		this.overlay.vis();
		this.kampagne.vis();
		this.synlig = true;
	},
	
	luk: function(evt)
	{
		if(!this.synlig) return;
		
		// * gemmer cookie
		var cookie = new Cookie(this.cookiename);
		if(this.vis_hver_gang=='ja')
			cookie.set(this.navn);
		else
			cookie.set(this.navn,365);
		this.overlay.skjul(); 
	 	this.kampagne.skjul();
	 	this.synlig = false;
	}
}

// * init
var kampagne_handler = new KampagneHandler();