
// filename: hk_gen.js
// version 1.0 - 2006-05-18 - mkr
// author: martin dot krause at gpm dot de

var gpm = {

	// classes
	colorOdd: '#eeeeee',
	colorEven: '#fefefe',
	divNavDivider : 'divSubmenuLast',
	
	//id
	contentId: 'colmiddle',
	navId: 'navwrapper',
	
	//misc
	subNavDividerImage: '/fileadmin/template/img/dottline_orange.gif',
	
	// pageInit
	pageInit: function() {

		this.styleNavigation();
		this.removeLineOnhometable('hometable');
		this.styleTable();

	},
	
	
	// remove bgimgae / table.class="hometable" last td
	removeLineOnhometable: function(markerClass) {

		// get tables
		var obj = document.getElementsByTagName('table');
		// basic error handling ;-)
		if (!obj) {return};

		//cycle them
		for ( var i = 0; obj.length; i++)
		{
			// prevent errros
			if ( !obj[i] ) {break;}

			// check for markerClass on table
			if ( (obj[i].className.indexOf(markerClass) != -1) ) 
			{
				// get tds
				var objTd = obj[i].getElementsByTagName('td');

				for ( var j = 0; objTd.length; j++)
				{
					// prevent errros
					if ( !objTd[j] ) {break;}

					if ( j == (objTd.length-1) ) 
					{
						objTd[j].style.background = 'transparent';
					}
				}
			
			}
		}
	},
	
	// attaching nice background (this.subNavDividerImage) to the last div class=this.divNavDivider, reason? navigation mado of plain links
	styleNavigation: function() {
	
		// get div holding subnav
		var obj = document.getElementById(this.navId);
		// basic error handling ;-)
		if (!obj) {return};

		// grad all divs inside
		var objDivs = obj.getElementsByTagName('div');

		//cycle them
		for ( var i = 0; objDivs.length; i++)
		{
			// prevent errros
			if ( !objDivs[i] ) {break;}
			//get the desired div, check if its the last one 
			if ( (objDivs[i].className.indexOf(this.divNavDivider) != -1) && (i == (objDivs.length-1) )  ) 
			{
				// change styles
				objDivs[i].style.background = 'url('+this.subNavDividerImage+') bottom repeat-x';
				objDivs[i].style.marginRight = '15px';
			}			
		}
	},

	// styling tables: odd / even 
	styleTable:	function() {
	
		// get the content div
		var obj = document.getElementById(this.contentId);
		// basic error handling ;-)
		if (!obj) {return};

		var skipTh = false;
		// get all tbodys
		var objElementTbody = obj.getElementsByTagName('tbody');

		// cycle tbodys, store their childnodes, cycle them 
		for (var i = 0; i <= objElementTbody.length; i++) 
		{
			// prevent errors
			if (!objElementTbody[i]) {break;}
			//get this tbodys child nodes
			var objElementTbodyChildNodes = objElementTbody[i].childNodes;

			// odd/even counter
			var c = 0;

			for (var j = 0; j <= objElementTbodyChildNodes.length; j++) 
			{
				// prevent errors 
				if (!objElementTbodyChildNodes[j]) {break;}
				// check for tr
				if ( (objElementTbodyChildNodes[j].nodeName.indexOf('TR') != -1)  )  
				{
					// skip class="nobackground"
					if ( objElementTbodyChildNodes[j].className.indexOf('nobackground') != -1 ) { continue; }
					//get this trs child nodes, to check for TH 
					var objElementTrChildNodes = objElementTbodyChildNodes[j].childNodes;

					for (var k = 0; k <= objElementTrChildNodes.length; k++) 
					{			
						// prevent errors 
						if (!objElementTrChildNodes[k]) {break;}
						// check for th
						if ( objElementTrChildNodes[k].nodeName.indexOf('TH') != -1 ) { skipTh = true; }
					}
					// odd
					if ( ((c % 2) == 0) && ( !skipTh) ) { objElementTbodyChildNodes[j].style.background = this.colorOdd;} 
					// even
					if ( ((c % 2) != 0) && ( !skipTh) ) { objElementTbodyChildNodes[j].style.background = this.colorEven;} 
				// increase odd/even counter
				c++;
				// reset
				skipTh = false;
				}
			}
		}
	}
}
	

