var JCC = JCC || {
	
	init: function() {
		this.setHeights();
		if (document.body.className == 'vp') {
			this.mouseoverColorBlock();
			this.rotateHeaders(true);
		}
		initLytebox();
	},
	
	/**
	 * Adds 'sfhover' class when mouseover-event is fired in the dropdown menu
	 */
	sfHover: function() {
		var template = document.body.className;
		if (document.getElementById("nav")) {
			var sfEls = document.getElementById("nav").getElementsByTagName("LI");
			for (var i=0; i<sfEls.length; i++) {
				sfEls[i].onmouseover=function() {
					this.className+=" sfhover";
				}
				sfEls[i].onmouseout=function() {
					this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
				}
			}
		}
	},
	
	/**
	 * Set equal heights for each row of sitemap items and stretch the payoff if nessessary
	 */
	setHeights: function() {
		var sitemapArr 	= document.getElementById('sitemap').childNodes;
		var maxHeight 	= new Array();
		var liArr 		= new Array();
		var row = i		= 0;
		
		for (var k in sitemapArr) {
			if (sitemapArr[k].tagName == 'LI') {
				i++;
				liArr[i] = sitemapArr[k];
				if (sitemapArr[k].offsetHeight > maxHeight)
					maxHeight[row] = sitemapArr[k].offsetHeight;
				if (i % 7 == 0) {
					for (var item in liArr) {
						if (liArr[item].style)
							liArr[item].style.height = maxHeight;
					}
					var liArr = new Array();
					row++;
				}
			}
		}
		
		var footer = document.getElementById('footer');
		var footerpos = this.findPos(footer);
		var bsize = this.getBrowserSize();
		var diff = bsize.y - (footer.offsetHeight + footerpos[1]);
		if (diff > 0)
			footer.style.height = (footer.offsetHeight + diff) + 'px';
	},
	
	/**
	 * find the X and Y position  (left and top) of an domelement
	 * @return  array [left,top]
	 */
	findPos: function (obj) {
		var curleft = curtop = 0;
	
		if (obj.offsetParent) 
	
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	
		return [curleft,curtop];
	},
	
	/**
	* get the browser size
	*/
	getBrowserSize: function () {
		var x,y;
		if (self.innerHeight) {// all except Explorer
			x = self.innerWidth;
			y = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) {
			// Explorer 6 Strict Mode
			x = document.documentElement.clientWidth;
			y = document.documentElement.clientHeight;
		} else if (document.body) {// other Explorers
			x = document.body.clientWidth;
			y = document.body.clientHeight;
		}
		return {x:x,y:y};
	},
	
	/**
	 * Returns all the colorblocks on the page (must have a H2 tag in it and classname must contain 'colorblock')
	 */
	getColorBlocks: function() {
		var rv = [];
		
		var colorblocks = document.getElementsByTagName('h2');
		for (var i in colorblocks) {
			if (colorblocks[i] && colorblocks[i].parentNode) {
				if (/colorblock/.test(colorblocks[i].parentNode.className)) {
					rv[rv.length] = colorblocks[i];
				}
			}
		}
		return rv;
	},
	
	/**
	 * Handle the colorblock events: 
	 * on mouseover: display the belonging header and texts. 
	 * on onclick: toggle between display the UL link list or the text.
	 */
	mouseoverColorBlock: function() {
		var colorblocks = this.getColorBlocks();
		var number = 0;
		
		for (var i in colorblocks) {
			colorblocks[i].color = colorblocks[i].className;
			colorblocks[i].number = number;
			colorblocks[i].onmouseover = function() {
				if (typeof colorblockArr[this.number] == "object") {
					clearTimeout(JCC.rotateHeaders.t);
					JCC.rotateHeaders.t = window.setTimeout(JCC.rotateHeaders,10000);
					for (var k in colorblockArr[this.number]) {
						var obj = document.getElementById('header_'+k);
						if (obj) {
							if (obj.tagName == 'IMG' && colorblockArr[this.number][k] !== '')
								obj.src = unescape(colorblockArr[this.number][k]);
							else if (obj.tagName !== 'IMG')
								obj.innerHTML = unescape(colorblockArr[this.number][k]);
							if (obj.tagName == 'H4' && this.color !== '')
								obj.style.color = '#'+this.color;
						}
					}
				}
			};
			if (document.body.className !== 'vv') {
				colorblocks[i].onclick = function() {
					clearTimeout(JCC.rotateHeaders.t);
					if (typeof colorblockArr[this.number] == "object") {
						var div = this.nextSibling;
						while (div && div.nodeType != 1) {
						    div = div.nextSibling;
						}
						
						var text = div.getAttribute('text');
						if (text && text !== '') {
							div.innerHTML = unescape(text);
							div.setAttribute('text',null);
						} else {
							div.setAttribute('text',escape(div.innerHTML));
							div.innerHTML = unescape(colorblockArr[this.number][4]);
						}
					}
				};
			}
			number++;
		}
	},
	
	/**
	 * Rotate the headers on the frontpage every 5 seconds
	 */
	rotateHeaders: function(firsttime) {
		if (typeof colorblockArr == "object") {
			this.nr 			= JCC.rotateHeaders.nr;
			this.colorblocks 	= JCC.rotateHeaders.colorblocks;
			
			if (!this.colorblocks) {
				this.colorblocks = this.getColorBlocks(); 
				JCC.rotateHeaders.colorblocks = this.colorblocks;
			}
			if (!this.nr) this.nr = 0;
			if (firsttime == true) colorblockArr[colorblockArr.length] = [];
			
			for (var k in colorblockArr[this.nr]) {
				var obj = document.getElementById('header_'+k);
				if (obj) {
					if (firsttime == true) {
						colorblockArr[colorblockArr.length-1][k] = [];
						if (obj.tagName == 'IMG')
							colorblockArr[colorblockArr.length-1][k] = obj.src;
						else
							colorblockArr[colorblockArr.length-1][k] = obj.innerHTML;
					} else {
						if (obj.tagName == 'IMG' && colorblockArr[this.nr][k] !== '')
							obj.src = unescape(colorblockArr[this.nr][k]);
						else if (obj.tagName !== 'IMG')
							obj.innerHTML = unescape(colorblockArr[this.nr][k]);
						if (obj.tagName == 'H4' && this.colorblocks[this.nr] && this.colorblocks[this.nr].className !== '')
							obj.style.color = '#'+this.colorblocks[this.nr].className;
					}
				}
			}
			
			if (firsttime !== true) this.nr++;
			if (this.nr >= colorblockArr.length)
				this.nr = 0;
			
			JCC.rotateHeaders.nr = this.nr;
			clearTimeout(JCC.rotateHeaders.t);
			JCC.rotateHeaders.t = window.setTimeout(JCC.rotateHeaders,5000);
		}
	},
	
	printPage: function() {
		//niet printen in admindeel
		if (/\/admin\//.test(document.location)) {
		  alert('Printen is niet mogelijk binnen de PageProcessor admin omgeving');
		  return false;
		}
		
		var left = document.getElementById('section3').innerHTML;
		var right = document.getElementById('section4').innerHTML;
		
		window.printgedeelte = '<table><tr><td class=left>'+left+'</td><td>'+right+'</td></tr></table>';
		window.title = document.title.replace(/JCC Software, get the flow! - /gi,"");

		//disable de links om bladeren via printversie te voorkomen
		window.printgedeelte = window.printgedeelte.replace(/href/gi,"hrefdisabled");
		window.printgedeelte = window.printgedeelte.replace(/onclick/gi,"onclickdisabled");
 
		//open popup en vul deze 
		var w =  window.open('/print.html');
	},
	
	/**
	 * Open the Stuurdoor popup and mail the current URL to a friend
	 * @param string docid: the docID of the page which should be e-mailed.
	 */
	mailArticle: function (docid) {
		if (!docid)
			return false;
		
		popup('/stuurdoor/index.php?id='+docid,'stuurdoor',400,300);
	}
}

/**
 * Initialise sfHover function for dropdown menu in IE
 */
if (window.attachEvent)
	window.attachEvent("onload", JCC.sfHover);
