/* 
 * DOMcollapse
 * Version 3.0
 * released 06.12.2005 
 * Not for commercial reselling or use, unless consent given by the author
 * Check for updates on http://onlinetools.org and http://wait-till-i.com
 *
*/


dc={
	triggerElements:'*', 	// elements to trigger the effect
	parentElementId:null,	// ID of the parent element (keep null if none)
	uniqueCollapse:false,	// is set to true only one element can be open at a time

	// CSS class names
	trigger:'trigger',
	triggeropen:'expanded',
	hideClass:'hide',
	showClass:'show',
	
	// pictures and text alternatives
	closedPic:'images/plus.gif',
	closedPic2:'images/test.gif',
	closedPicText:'&#62;',
	closedAlt:'expand section',
	openPic:'images/minus.gif',
	openPicText:'v',
	openAlt:'collapse section',
	/* Doesn't work with Safari
		hoverClass:'hover',
	*/

	init:function(e){
		var temp;
		if(!document.getElementById || !document.createTextNode){return;}
		if(!dc.parentElementId){
			temp=document.getElementsByTagName(dc.triggerElements);
		} else if(document.getElementById(dc.parentElementId)){
			temp=document.getElementById(dc.parentElementId).getElementsByTagName(dc.triggerElements);
		}else{
			return;
		}
		dc.tempLink=document.createElement('a');
		dc.tempLink.setAttribute('href','#');
		dc.tempLink.appendChild(document.createElement('h4'));
		for(var i=0;i<temp.length;i++){
			if(dc.cssjs('check',temp[i],dc.trigger) || dc.cssjs('check',temp[i],dc.triggeropen)){
				dc.makeTrigger(temp[i],e);
			}
		}
	},
	makeTrigger:function(o,e){
		var tl=dc.tempLink.cloneNode(true);
		var tohide=o.nextSibling;
		while(tohide.nodeType!=1)
		{
			tohide=tohide.nextSibling;
		}
		o.tohide=tohide;
		if(!dc.cssjs('check',o,dc.triggeropen)){
			dc.cssjs('add',tohide,dc.hideClass);
			
			document.getElementById('main').style.visibility = 'visible';
			tl.getElementsByTagName('h4')[0].innerHTML = dc.closedPicText;
			//tl.getElementsByTagName('h4')[0].style.color = '#ff0000';
			//tl.getElementsByTagName('img')[0].setAttribute('src',dc.closedPic);
			//tl.getElementsByTagName('img')[0].setAttribute('alt',dc.closedAlt);
			o.setAttribute('title',dc.closedAlt);
		}else{
			dc.cssjs('add',tohide,dc.showClass);
			//alert('close');
			document.getElementById('main').style.visibility = 'visible';
			tl.getElementsByTagName('h4')[0].innerHTML = dc.openPicText;
			//tl.getElementsByTagName('img')[0].setAttribute('src',dc.openPic);
			//tl.getElementsByTagName('img')[0].setAttribute('alt',dc.openAlt);
			o.setAttribute('title',dc.openAlt);
			dc.currentOpen=o;
		}
		dc.addEvent(o,'click',dc.addCollapse,false);
		/* Doesn't work with Safari
		dc.addEvent(o,'mouseover',dc.hover,false);
		dc.addEvent(o,'mouseout',dc.hover,false);
		*/
		o.insertBefore(tl,o.firstChild);
		dc.addEvent(tl,'click',dc.addCollapse,false);
		// Safari hacks 
		tl.onclick=function(){return false;}
		o.onclick=function(){return false;}
	},
	/* Doesn't work with Safari
	hover:function(e){
		var o=dc.getTarget(e);
		var action=dc.cssjs('check',o,dc.hoverClass)?'remove':'add';
		dc.cssjs(action,o,dc.hoverClass)
	},
	*/
	addCollapse:function(e){
		var action,pic;
		// hack to fix safari's redraw bug 
		// as mentioned on http://en.wikipedia.org/wiki/Wikipedia:Browser_notes#Mac_OS_X
		if (self.screenTop && self.screenX){
			window.resizeTo(self.outerWidth + 1, self.outerHeight);    
			window.resizeTo(self.outerWidth - 1, self.outerHeight);   
		}
		if(dc.uniqueCollapse && dc.currentOpen){
			dc.getElementsByTagName('h4')[0].innerHTML = dc.closedPicText;
			//dc.currentOpen.getElementsByTagName('img')[0].setAttribute('src',dc.closedPic);
			//dc.currentOpen.getElementsByTagName('img')[0].setAttribute('alt',dc.closedAlt);
			dc.currentOpen.setAttribute('title',dc.closedAlt);
			dc.cssjs('swap',dc.currentOpen.tohide,dc.showClass,dc.hideClass);
			dc.cssjs('remove',dc.currentOpen,dc.triggeropen);
			dc.cssjs('add',dc.currentOpen,dc.trigger);
		}
		var o=dc.getTarget(e);
		if(o.tohide){
			if(dc.cssjs('check',o.tohide,dc.hideClass)){
			clearInterval(timer);
				o.getElementsByTagName('h4')[0].innerHTML = dc.openPicText;
			//	o.getElementsByTagName('img')[0].setAttribute('src',dc.openPic);
			//	o.getElementsByTagName('img')[0].setAttribute('alt',dc.openAlt);
				o.setAttribute('title',dc.openAlt);
				dc.cssjs('swap',o.tohide,dc.hideClass,dc.showClass);
				dc.cssjs('add',o,dc.triggeropen);
				dc.cssjs('remove',o,dc.trigger);
			}else{
			
				o.getElementsByTagName('h4')[0].innerHTML = dc.closedPicText;
			//	o.getElementsByTagName('img')[0].setAttribute('src',dc.closedPic);
			//	o.getElementsByTagName('img')[0].setAttribute('alt',dc.closedAlt);
				o.setAttribute('title',dc.closedAlt);
				dc.cssjs('swap',o.tohide,dc.showClass,dc.hideClass);
				dc.cssjs('remove',o,dc.triggeropen);
				dc.cssjs('add',o,dc.trigger);
			}
			dc.currentOpen=o;
			
			dc.cancelClick(e);
			//document.getElementById('debug').innerHTML=o.tohide.className;
			
			if (o.tohide.id == 'blogEntry')	{
				var myDate=new Date();
				myMonthNum=myDate.getMonth();
				myMonthNum=myMonthNum - 1;
				myDate.setMonth(myMonthNum);
				with (myDate){
					theNewMonth= (getMonth() +1);
					theNewYear = getFullYear();
			}
			
			rangeString = 'published-min=' + theNewYear + '-' + zeroPad(theNewMonth) + '-01';
			//rangeString = 'max-results=1';
			
			document.getElementById('currentBlog').innerHTML = '<IMG SRC=\"images/working.gif\" WIDTH=13 HEIGHT=13 BORDER=0 style=\"border:none;\">';
			blogLoad('currentBlog',rangeString);	
			}
			
			if ((o.tohide.id.indexOf('archive') != -1)	&& (o.tohide.className == 'show')) {
				if (o.tohide.id.length == 8)	{
						archiveID = o.tohide.id.charAt(o.tohide.id.length - 1);
					}
					else	{
						archiveID =	o.tohide.id.slice(o.tohide.id.length - 2)
					}
			
			var myDate=new Date();
			myMonthNum=myDate.getMonth();
			myMonthNum=myMonthNum - archiveID;
			myDate.setMonth(myMonthNum);
			with (myDate){
			theNewMonth= (getMonth() +1);
			theNewYear = getFullYear();
			}
			
			var myDate2=new Date();
			myMonthNum2=myDate2.getMonth();
			myMonthNum2= (myMonthNum2 - archiveID ) + 1;
			myDate2.setMonth(myMonthNum2);
			with (myDate2){
			theNewMonth2 = (getMonth() +1);
			theNewYear2 = getFullYear();
			}
			
			rangeString = 'published-min=' + theNewYear + '-' + zeroPad(theNewMonth) + '-01&published-max=' + theNewYear2 + '-' + zeroPad(theNewMonth2) + '-01';
			document.getElementById(o.tohide.id).innerHTML = '<IMG SRC=\"images/working.gif\" WIDTH=13 HEIGHT=13 BORDER=0>';
			blogLoad(o.tohide.id,rangeString);
			}
		}
		else{
			dc.cancelClick(e);
		}
	},
	/* helper methods */
	getTarget:function(e){
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target){return false;}
		while(!target.tohide && target.nodeName.toLowerCase()!='body')
		{
			target=target.parentNode;
		}
		// if (target.nodeName.toLowerCase() != 'a'){target = target.parentNode;} Safari fix not needed here
		return target;
	},
	cancelClick:function(e){
		if (window.event){
			window.event.cancelBubble = true;
			window.event.returnValue = false;
			return;
		}
		if (e){
			e.stopPropagation();
			e.preventDefault();
		}
	},
	addEvent: function(elm, evType, fn, useCapture){
		if (elm.addEventListener) 
		{
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}
	},
	cssjs:function(a,o,c1,c2){
		switch (a){
			case 'swap':
				o.className=!dc.cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
			break;
			case 'add':
				if(!dc.cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
			break;
			case 'remove':
				var rep=o.className.match(' '+c1)?' '+c1:c1;
				o.className=o.className.replace(rep,'');
			break;
			case 'check':
				return new RegExp("(^|\\s)" + c1 + "(\\s|$)").test(o.className)
			break;
		}
	}
}
dc.addEvent(window, 'load', dc.init, false);

function zeroPad(num)
{
var numZeropad = num + '';
while(numZeropad.length < 2) {
numZeropad = "0" + numZeropad;
}
return numZeropad;
}

var myMonths=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var myDays= new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");
today=new Date();
thisDay=myDays[today.getDay()]
thisMonth=myMonths[today.getMonth()]
thisYear=today.getFullYear()
thisDate=today.getDate()

