// The right way to add load events. By Simon Willison

function addLoadEvent(func) {	var oldonload = window.onload;	if (typeof window.onload != 'function') {		window.onload = func;	}	else {		window.onload = function() {			oldonload();			func();		}	}}

// attach an event properly

function attachEvent(element, type, event)	{
  if(element.attachEvent)	{
    element.attachEvent('on' + type, event);
	}
  else	{
   element.addEventListener(type, event, false);
	}
}

function getElementsByClassName(oElm, strTagName, strClassName){    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);    var arrReturnElements = new Array();    strClassName = strClassName.replace(/\-/g, "\\-");    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");    var oElement;    for(var i=0; i<arrElements.length; i++){        oElement = arrElements[i];              if(oRegExp.test(oElement.className)){            arrReturnElements.push(oElement);        }       }    return (arrReturnElements)}

// All code except the three functions ABOVE this line are copyright
// 2006 (c) EtnoMedia and may NOT be used without permission.

function getClickedElement(e)	{
	       var targ;	       if (!e) var e = window.event;	       if (e.target) targ = e.target;	           else if (e.srcElement) targ = e.srcElement;	           if (targ.nodeType == 3) {
                targ = targ.parentNode;
                }	
			return targ;
	}

function toggleMenu(e)  {
                theItem = getClickedElement(e);
                while (theItem.nodeName != 'UL') {
                   if(!(theItem = theItem.nextSibling))	{
					return;
					}
                    }
                new Effect.toggle(theItem, 'blind', {duration:0.3});
}



function switchTab(e)  {

		allTabs = $('newstabs').getElementsByTagName('a');
		for(i=0;i<allTabs.length;i++)	{
			allTabs[i].style.backgroundPosition = 'top left';
			allTabs[i].style.backgroundColor = '#3a3a3a';
			allTabs[i].style.color = '#666';
			}	
                theItem = getClickedElement(e);
			  theItem.style.backgroundPosition = 'bottom left';
			  theItem.style.backgroundColor = '#000';
			  theItem.style.color = '#fff';
			}

function initMenu() {
    menuButtons = $('categories').getElementsByTagName('a');
    for(i=0;i<menuButtons.length;i++)   {
		  if(menuButtons[i].parentNode.getElementsByTagName('UL').length > 0)   {
	            menuButtons[i].setAttribute('href', 'javascript:void(null);');
     	       attachEvent(menuButtons[i], 'click', function(e) {
         	       toggleMenu(e);
	            });
			}
        }
	itemsToHide = $('categories').getElementsByTagName('UL');
	for(i=0;i<itemsToHide.length;i++)	{
		itemsToHide[i].style.display = "none";
		}
    menuButtons = $('months').getElementsByTagName('a');
    for(i=0;i<menuButtons.length;i++)   {
		  if(menuButtons[i].parentNode.getElementsByTagName('UL').length > 0)   { 
           menuButtons[i].setAttribute('href', 'javascript:void(null);');
            attachEvent(menuButtons[i], 'click', function(e) {
                toggleMenu(e);
            });
		}
	}
	itemsToHide = $('months').getElementsByTagName('UL');
	for(i=0;i<itemsToHide.length;i++)	{
		itemsToHide[i].style.display = "none";
		}
    }

function hiliteNewsItems()  {
	if(document.getElementById('newsitems'))	{
		newsItems = document.getElementById('newsitems').getElementsByTagName('li')
	    for(i=0;i<newsItems.length;i++) {
     	   attachEvent(newsItems[i], 'mouseover', function(e) {
	theElement = getClickedElement(e);
	while(theElement.nodeName != 'LI')	{
		theElement = theElement.parentNode;
		}
	theElement.style.backgroundColor = '#666';});     
  
     	   attachEvent(newsItems[i], 'mouseout', function(e)  {
	theElement = getClickedElement(e);
	while(theElement.nodeName != 'LI')	{
		theElement = theElement.parentNode;
		}
 	theElement.style.backgroundColor = '#000';});
     	   }
	}
}

function hiliteFormElement(e)	{
	theElement = getClickedElement(e);
	theElement.style.backgroundColor = '#76dd97';
	theElement.style.color = '#000';
}
function lowliteFormElement(e)	{
	theElement = getClickedElement(e);
	theElement.style.backgroundColor = '#299447';
	theElement.style.color = '#dfd';
}

function initHeader()	{
	$('head').style.cursor = 'pointer';
	attachEvent($('head'), 'click', function()	{
		document.location.href='/';
		});
}

function initNewsTabs()		{
	if($('newstabs'))	{
		allTabs = $('newstabs').getElementsByTagName('a');
		for(i=0;i<allTabs.length;i++)	{
			theCatName = allTabs[i].innerHTML;
			allTabs[i].setAttribute("href", "javascript:doCategory('" + theCatName + "')");
			attachEvent(allTabs[i], 'click', function(e)		{switchTab(e)});
			}
		}
}

function showNewItems()		{
	dazzle = new Effect.Appear('newsitems');
	hiliteNewsItems();
}

function doCategory(theCategory)	{
	$('newsbrowser').removeChild($('newsitems'));
	$('aspinner').style.display = 'block';
	url = '/recentitems/';
	pars = 'cat=' + theCategory;
	updateNews = new Ajax.Updater('newsbrowser', url, {method:'get', parameters: pars, onComplete:showNewItems});
	}

function resetTransparency(element)	{
	if(element.className != 'foothead')	{
		element.className = 'normal';
		}
	}

function initFooter()	{
	allElements = $('footer').getElementsByTagName('li');
	for(i=0;i<allElements.length;i++)	{
		attachEvent(allElements[i], 'mouseover', function(e){
			openElements = $('footer').getElementsByTagName('li');
			for(j=0;j<openElements.length-1;j++)	{
				openElements[j].style.backgroundColor = 'transparent';
				resetTransparency(openElements[j]);
				}
		
			var element = getClickedElement(e);
			if(element.nodeName == 'A')	{
				element = element.parentNode;
				}
			element.style.cursor = 'pointer';
			element.style.backgroundColor = '#000';
				if(element.className != 'foothead')	{
					element.className = 'trans';
					}
				});
		attachEvent(allElements[i], 'click', function(e){
			visitIncludedLink(e)});
		attachEvent(allElements[i], 'mouseout', function(e){
			var element = getClickedElement(e);
			resetTransparency(element);
			element.style.backgroundColor = 'transparent';});
		}
}

function visitIncludedLink(e)	{
	element = getClickedElement(e);
		if(element.nodeName == 'A')	{
		window.location.href = element.getAttribute('href');
			}
		else	{
			theLink = element.getElementsByTagName('A')[0];
			window.location.href = theLink.getAttribute('href');
			}
		}
function initCommentForm()	{
		var formElements = document.getElementsByTagName('input');
		for(i=0;i<formElements.length-1;i++)	{
			if((formElements[i] != $('submit')) && (formElements[i] != $('s')))  {
				attachEvent(formElements[i], 'focus', function (e)		{hiliteFormElement(e)});	
				attachEvent(formElements[i], 'blur', function (e)		{lowliteFormElement(e)});
					}
				}
	if($('commentform'))	{
		attachEvent($('comment'), 'focus', function (e)	{hiliteFormElement(e)});	
		attachEvent($('comment'), 'blur', function (e)	{lowliteFormElement(e)});
		attachEvent($('commentform'), 'submit', function() {return validateComment();});
		}
	if($('wpcf_msg'))	{
		attachEvent($('wpcf_msg'), 'focus', function (e)	{hiliteFormElement(e)});	
		attachEvent($('wpcf_msg'), 'blur', function (e)	{lowliteFormElement(e)});		
		}
}


function checkMail(str) {		var at="@"		var dot="."		var lat=str.indexOf(at)		var lstr=str.length		var ldot=str.indexOf(dot)		if (str.indexOf(at)==-1){		   return false		}		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){		   return false		}		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){		    return false		}		 if (str.indexOf(at,(lat+1))!=-1){		    return false		 }		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){		    return false		 }		 if (str.indexOf(dot,(lat+2))==-1){		    return false		 }				 if (str.indexOf(" ")!=-1){		    return false		 } 		 return true						}

function validateComment()	{
	$('commenterror').style.display = 'none';
	if($F('comment').length < 2)	{
		$('commenterror').style.display = 'block';		$('commenterror').innerHTML = 'Fout: het reactieveld is leeg.';		Effect.Pulsate('commenterror');
		$('comment').focus();
		return false;		
		}
	if($F('author').length < 2)	{
		$('commenterror').style.display = 'block';		$('commenterror').innerHTML = 'Fout: vul je naam in.';		Effect.Pulsate('commenterror');
		$('author').focus();
		return false;		
		}
	if(!checkMail($F('email')))	{
		$('commenterror').style.display = 'block';		$('commenterror').innerHTML = 'Fout: vul een geldig email adres in in.';		Effect.Pulsate('commenterror');
		$('author').focus();
		return false;		
		}
		$('submit').value = 'Even geduld';
		$('submit').disabled = true;
		return true;
}

addLoadEvent(hiliteNewsItems);
addLoadEvent(initMenu);
addLoadEvent(initHeader);
addLoadEvent(initNewsTabs);
addLoadEvent(initCommentForm);
addLoadEvent(initFooter);
