﻿// Ovládání prezentace vytvořené pomocí inCMS
// (C)2007 Špika David, Inexes

// Inicializační fce po načtení stránky
addEventx(window,'onload','pageInit();');
function pageInit() {
	
	// uprava designu horniho menu
	getObj('appendMenuBG').style.height = getObj('mainMenuBox').offsetHeight + 'px';
	getObj('appendMenuBG').style.display = 'block';
	
	// uprava designu nadpisu pomoci pridani spanu
	if (getObj("infoContentBox"))  {
	h2Elements = getObj("infoContentBox").getElementsByTagName("h2");
	h3Elements = getObj("infoContentBox").getElementsByTagName("h3");
	if (h2Elements.length > 0) for (var element in h2Elements) h2Elements[element].innerHTML = h2Elements[element].innerHTML + '<span></span>';
	if (h3Elements.length > 0) for (var element in h3Elements) h3Elements[element].innerHTML = h3Elements[element].innerHTML + '<span></span>';
	}
}


// Fce na inicializaci hlavního menu (ovládané přes hover) - nahradí chybějící podporu css pseudotřídy li:hover pro IE6 + zruší kursor ruky při href="javascript:void(0)" + přidá šipku (class) u položek obsahujících podpoložky
// parametry: ID nebo menu (menu = <ul>)
function mainMenuInit (obj) {
	if (getObj(obj)) {
		var menu = getObj(obj);
		var childItems = menu.getElementsByTagName('li');
		for (var i=0; i<childItems.length; i++) {
			if (browser.IE6) {
				addEventx(childItems[i],'onmouseover','o.className += \' hover\';');
				addEventx(childItems[i],'onmouseout','o.className = o.className.replace(\' hover\',\'\');');
				}
			if (childItems[i].getElementsByTagName('ul').length > 0) {
				childItems[i].className += ' isParent';
				}	
			}
		var links = menu.getElementsByTagName('a');
		for (var i=0; i<links.length; i++) {
			if (links[i].href == 'javascript:void(0);') setObjStyle(links[i],'cursor','default');
			}
		}
	}

// Fce uloží do cookies zadanou hodnotu
function setCookie(name, value, path, domain, secure) {
	expires = new Date ();
	expires.setTime (expires.getTime() + (24 * 60 * 60 * 1000 * 31));
	document.cookie= name + "=" + escape(value) +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
	}

// Fce na inicializaci submenu (ovládané přes onClick) - zabalí všechny položky a rozbalí určenou položku (včetně všech položek v cestě) + přidá šipku (class) u položek obsahujících podpoložky
// parametry: cesta k položce, která se má rozbalit (Array)
function subMenuInit (path) {
	var menuID = 'menuList-' + path[0];
	if (getObj(menuID)) {
		var menu = getObj(menuID);
		var childUL = menu.getElementsByTagName('ul');
		for (var i=0; i<childUL.length; i++) {
			displayObj(childUL[i],false);
			}
		for (var i=1; i<path.length; i++) {
			menuID += '-' + path[i];
			displayObj(menuID,true);
			}
		var childLI = menu.getElementsByTagName('li');
		for (var i=0; i<childLI.length; i++) {
			if (browser.IE6) {
				addEventx(childLI[i],'onmouseover','o.className += \' hover\';');
				addEventx(childLI[i],'onmouseout','o.className = o.className.replace(\' hover\',\'\');');
				}
			if (childLI[i].getElementsByTagName('ul').length > 0) {
				childLI[i].className += ' isParent';
				}	
			}
		}
	}	

// Fce na rozbalení určené položky submenu (ovládané přes onClick)
// Pokud položka, na kterou bylo kliknuto, někam odkazuje - Fce vrací true a žádné rozbalení se neprovede
// pokud neodkazuje - Dojde k rozbalení a fce vrací false
// parametry: položka na kterou bylo kliknuto; ID seznamu UL, který se má rozbalit
function expandMenuList (item,menuListID) {
	if (item.href != 'javascript:void(0);') return true;
	var path = menuListID.split('-');
	for (var i=0; i<path.length-1; i++) path[i] = path[i+1];
	path.length--;
	item.blur();
	subMenuInit(path);
	return false;
	}	

// Fce vrátí cenu jako upravený text
// parametry: cena jako číslo
function priceToString (price) {
	priceInt = Math.floor(price);
	priceFract = price.toString().indexOf('.') == -1 ? '0' : 100 * ('0.' + price.toString().split('.')[1]);
	return priceInt + ',' + (priceFract == '0' ? '&ndash;' : (priceFract < 10) ? ('0' + priceFract) : priceFract);
	}
	
// Fce vrátí zaokrouhlenou cenu na zadaný počet haléřů
// parametry: cena jako číslo, desetinná část na kterou zaokrouhlit (0.01 až 1), způsob zaokrouhlení (0 = matematicky | 1 = dolů)
function roundPrice (price,fract,mode) {
	priceInt = Math.floor(price);
	priceFract = price.toString().indexOf('.') == -1 ? '0' : '0.' + price.toString().split('.')[1]; // desetinná část ceny
	if (mode == 0) {
		for (var i=0; i<2/fract; i++) {
			var downLimit = Math.round(1000*i*fract/2)/1000;
			var upLimit = Math.round(1000*(i+1)*fract/2)/1000;
			if(downLimit<=priceFract && priceFract<upLimit) {
				if (i % 2 == 0) return priceInt + downLimit;
				else return priceInt + upLimit;
				}
			}
		}
	if (mode == 1) {
		for (var i=0; i<1/fract; i++) {
			var downLimit = Math.round(1000*i*fract)/1000;
			var upLimit = Math.round(1000*(i+1)*fract)/1000;
			if(downLimit<=priceFract && priceFract<upLimit) return priceInt + downLimit;
			}
		}
	return null;
	}

// Fce na validaci data
// parametry: formulář. pole (ID nebo prvek)
function validateDate (obj) {
	var o = getObj(obj);
	var date = o.value;
	var dateField = date.split('.');
	var testDate = new Date();
	var ok = true;
	if (dateField.length==3 && dateField[2].length==4) {
		testDate.setFullYear(dateField[2]);
		testDate.setMonth(dateField[1]-1);
		testDate.setDate(dateField[0]);
		if (testDate.getFullYear()!=dateField[2] || testDate.getMonth()!=dateField[1]-1 || testDate.getDate()!=dateField[0])
			ok = false;
		}
	else ok = date != '' ? false : true;
	if (!ok) {
		if (o.className.indexOf('date-error') == -1) o.className += ' date-error';
		alert((o.title!='' ? '"' + o.title + '"' : 'Datum') + ' není ve správném formátu.');
		o.value = '';
		}
	else o.className = o.className.replace('date-error','');
	}
	
// fce pro ovladani mapy obchodniho centra
function mapOver(floor,number) {
	if (number < 10) var num = '0'+number.toString();
	else var num = number;
	getObj('floor'+floor).src = 'Design/Floors/' + floor + 'NP_' + num + '.gif';
	getObj('shop'+floor+'-'+number).className += ' aBold'; 
}	
function mapOut() {
	getObj('floor1').src = 'Design/Floors/1NP_01.gif';
	getObj('floor2').src = 'Design/Floors/2NP_01.gif';
	var bolds = getElementsByClass('a','aBold');
	if (bolds.length > 0) for (i=0;i<bolds.length;i++) bolds[i].className = bolds[i].className.replace('aBold','');
}
