// funkcije za izgled (layout) strani

// MainMenu Functions

function mainMenuItem(aID, imgWidth, aNormalImage, aActiveImage) {
	this.id = aID;
	this.normalImage = new Image(imgWidth, 21);
	this.normalImage.src = aNormalImage;
	this.activeImage = new Image(imgWidth, 21);
	this.activeImage.src = aActiveImage;
}

function createMainMenuItem(aID, imgWidth, aNormalImage, aActiveImage) {
	mainMenuItems[aID] = new mainMenuItem(aID, imgWidth, aNormalImage, aActiveImage);
}

var mainMenuItems = new Array();
createMainMenuItem('mmFed', 111, '/img/mainMenu/kolesarska_zveza.jpg', '/img/mainMenu/kolesarska_zveza-a.jpg')
createMainMenuItem('mmRoad', 122, '/img/mainMenu/cestno_kolesarstvo.jpg', '/img/mainMenu/cestno_kolesarstvo-a.jpg')
createMainMenuItem('mmMTB', 94, '/img/mainMenu/gorsko_kolesarstvo.jpg', '/img/mainMenu/gorsko_kolesarstvo-a.jpg')
createMainMenuItem('mmCFA', 94, '/img/mainMenu/mnozicnost.jpg', '/img/mainMenu/mnozicnost-a.jpg')

function mmHover(itemID, newState) {
	var objImage = getCachedElement(itemID);
	if (objImage != null) {
		if (newState == 1) objImage.src = mainMenuItems[itemID].activeImage.src;
		 else objImage.src = mainMenuItems[itemID].normalImage.src; 
	}
}

/*

function hI(imageID, newState) {
	var objImage = getCachedElement(imageID);
	if (objImage != null) {
		if (newState == 1) objImage.src = ;
		 else objImage.src = ;
	}
	
}
*/

// To Do: pretestiraj, kako se spodnja funkcija getAbsolutePosition() obnaša, ce je vkljucena v kak scrollable object (scrollTop in scrollLeft); Trenutno scrollOffseta ne upoštevamo, enako tudi ne paddinga; margin pomoje ni treba...
function getAbsolutePosition(aObject) {
	var absPos = { left: 0, top: 0 };
	while (aObject != null) {
		absPos.left += (parseInt(aObject.offsetLeft) || 0) - (parseInt(aObject.scrollLeft) || 0);
		absPos.top += (parseInt(aObject.offsetTop) || 0) - (parseInt(aObject.scrollTop) || 0);
		aObject = aObject.offsetParent;
	}
/*	CE BI BILI ZELO PICAJZLASTI, BI UPOŠTEVALI ŠE TOLE; VENDAR SE MUDI IN SI BOMO TO PUSTILI ZA KDAJ DRUGIC...
	if (navigator.appVersion.indexOf('MSIE 5') > -1 && navigator.appVersion.indexOf('Mac') >- 1) {
		offsetLeft += parseInt(document.body.leftMargin) || 0;
		offsetTop +=  parseInt(document.body.topMargin) || 0;
	}	*/	
	return absPos;
}

function TColumn(aID) {
	this.id = aID;
	this.el = null;
	this.absoluteTop = null;
	this.height = null;
	this.absoluteBottom = 0;
	this.minimumBottom = 0;
	
	this.init = function () {
		this.el = document.getElementById(this.id);
		if (this.el != null) {
			this.absoluteTop = getAbsolutePosition(this.el).top;
			this.height = parseInt(this.el.offsetHeight) || 0;
			this.absoluteBottom = this.absoluteTop + this.height;
			this.minimumBottom = this.absoluteBottom;
		}
	}
	
	this.setHeight = function(newHeight) {
		if (this.el == null || (parseInt(newHeight) || -1) <= 0) return;
		this.el.style.height = parseInt(newHeight) + 'px';
		this.absoluteBottom = newHeight;
	}
	
	this.adjustToHeight = function (targetBottom) {
		if (this.absoluteBottom != targetBottom) this.setHeight(targetBottom - this.absoluteTop);
	}
}

var contentsColumns = new Array();
contentsColumns[0] = new TColumn('leftCol');
contentsColumns[1] = new TColumn('pageContents');
contentsColumns[2] = new TColumn('rightCol');
colPageArea = new TColumn('pageArea'); 

function TFooterLayer() {
	this.id = 'footer';
	
	this.setTop = function(newTop) {
		if (this.el == null) return;	// && parseInt(newTop) || -1 != -1
		this.el.style.top = newTop+'px';
		this.absoluteTop = newTop;
		this.absoluteBottom = newTop + this.height;
		var objF1 = getCachedElement('pageAreaFooter');
		if (objF1) objF1.style.top = parseInt(newTop-59)+'px';
	}
}
TFooterLayer.prototype = new TColumn();

var objFooterLayer = new TFooterLayer();


var windowResizeTimer;

function adjustMainframeLayers() {
	clearInterval(windowResizeTimer);

	var objSubmenuContainer = getCachedElement('subMenu');
	if (objSubmenuContainer != null) {
		if (objSubmenuContainer.offsetHeight < 350) objSubmenuContainer.style.height = '350px';
		 else {
			objSubmenuContainer.style.height = objSubmenuContainer.offsetHeight+'px';
//			if (contentsColumns[0] != null && contentsColumns[0].el != null) 
			contentsColumns[0].init();	//  = parseInt(document.getElementById('leftCol').offsetHeight) || 0;
		 }
	}

	// ugotovimo minimalno še sprejemljivo velikost strani ...
	var minPageSize = 0;
	for (var i=0; i<contentsColumns.length; i++) {
		if (minPageSize < contentsColumns[i].minimumBottom) minPageSize = contentsColumns[i].minimumBottom;
	}
	// ... in velikost okna
	var windowHeight = window.size().height;
	
	if (windowHeight < minPageSize+objFooterLayer.height+64) objFooterLayer.setTop(minPageSize + 64);
	 else objFooterLayer.setTop(windowHeight - objFooterLayer.height);

/*
	for (var i=0; i<contentsColumns.length; i++) {
		contentsColumns[i].adjustToHeight(objFooterLayer.absoluteTop);
	}
*/
	colPageArea.adjustToHeight(objFooterLayer.absoluteTop);
}


function onWindowResize() {
	clearInterval(windowResizeTimer);
	windowResizeTimer = setTimeout('adjustMainframeLayers()', 10);
}

function adjustFooter() {
	objFooterLayer.init();
	for (var i=0; i<contentsColumns.length; i++) {
		contentsColumns[i].init();
	}
	colPageArea.init();
/*
	if (contentsColumns[2].el) {
//		contentsColumns[2].setTop(0);
	}
*/
	adjustMainframeLayers();
}

window.size = function() {
	var w = 0;
	var h = 0;
	if(window.innerWidth) {										// All Browsers except MS Internet Explorer
		w = window.innerWidth;
		h = window.innerHeight;
	}
	 else if(!(document.documentElement.clientWidth == 0)) {	// MS Internet Explorer (strict mode)
			w = document.documentElement.clientWidth;
			h = document.documentElement.clientHeight;
	 }
	  else {													// MS Internet Explorer (quirks mode)
			w = document.body.clientWidth;
			h = document.body.clientHeight;
	  }
	return {
		width: w,
		height: h
	};
}