/*
 * cssjs
 * written by Christian Heilmann (http://icant.co.uk)
 * eases the dynamic application of CSS classes via DOM
 * parameters: action a, object o and class names c1 and c2 (c2 optional)
 * actions: swap exchanges c1 and c2 in object o
 *			add adds class c1 to object o
 *			remove removes class c1 from object o
 *			check tests if class c1 is applied to object o
 * example:	cssjs('swap',document.getElementById('foo'),'bar','baz');
 */
var bDefaultTemplate = false;

function loadTemplate(){
	fInit(!bDefaultTemplate);
	menuTemplateOn();
	//cssjs('swap',document.getElementById('cube'),'cube','cubeN');
	//cssjs('swap',document.frames('iContents').document.all['body'],'test','blackNWhite'); // IE
	
	//bDefaultTemplate = !bDefaultTemplate;
}

var bDivsPreload = false;

function preloadDivs(){
	var dover_elements;
	var left_elements;
	var right_elements;
		
	if(!bDivsPreload){
		dover_elements = getElementsByClassNames(document, "*", "dover");
		left_elements = getElementsByClassNames(document.getElementById("main"), "DIV", "levi");
		right_elements = getElementsByClassNames(document.getElementById("main"), "DIV", "desni");
	}
	else{
		dover_elements = getElementsByClassNames(document, "*", "doverD");
		left_elements = getElementsByClassNames(document.getElementById("main"), "DIV", "leviD");
		right_elements = getElementsByClassNames(document.getElementById("main"), "DIV", "desniD");
	}
	
	for (var i=0;i<dover_elements.length;i++) {
		cssjs('swap', dover_elements[i],'dover','doverD');
	}
	
	for (var i=0;i<left_elements.length;i++) {
		cssjs('swap', left_elements[i],'levi','leviD');
	}
	for (var i=0;i<right_elements.length;i++) {
		cssjs('swap', right_elements[i],'desni','desniD');
	}
	
	//cssjs('swap', document.getElementById('inner'),'inner','innerN');
	
	bDivsPreload = !bDivsPreload;

	//window.location.href=window.location.href;
	//window.location.reload();
	//<input type="button" value="Reload Page" onClick="history.go(0)">
}

function cssjs(a,o,c1,c2)
{
	switch (a){
		case 'swap':
			o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
		break;
		case 'add':
			if(!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('\\b'+c1+'\\b').test(o.className)
		break;
	}
}

function getElementsByClassNames(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.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);
}
