﻿// Ovládání prezentace vytvořené pomocí inCMS
// (C)2007 Špika David, Inexes

// Inicializační fce po načtení stránky
addEvent(window, 'onload', 'pageInit();');
function pageInit() {
	hoverByClass('tr', 'hoverIE');
	addEventByClass('input', 'focusStyle', 'onfocus', 'o.className += \' text-focus\';');
	addEventByClass('input', 'focusStyle', 'onblur', 'o.className = o.className.replace(\'text-focus\',\'\');');
	addEventByClass('textarea', 'focusStyle', 'onfocus', 'o.className += \' text-focus\';');
	addEventByClass('textarea', 'focusStyle', 'onblur', 'o.className = o.className.replace(\'text-focus\',\'\');');
	//	addEvent('menuList-2','onmouseover','showFlash(false);');
	//	addEvent('menuList-2','onmouseout','showFlash(true);');
}

var showFlashBlocked = false;
function showFlash(show) {
	if (show) {
		setObjStyleByClass('object', '', 'visibility', 'visible');
		setObjStyleByClass('embed', '', 'visibility', 'visible');
	}
	else {
		setObjStyleByClass('object', '', 'visibility', 'hidden');
		setObjStyleByClass('embed', '', 'visibility', 'hidden');
	}
}

// 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++) {
			addEvent(childItems[i], 'onmouseover', 'o.className += \' hover\';');
			addEvent(childItems[i], 'onmouseout', 'mainMenuOff(\'' + obj + '\',' + i + ');');
			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');
		}
	}
}
var mainMenuOffLocked = new Array();
function mainMenuOff(obj, number) {
	var menu = getObj(obj);
	var childItems = menu.getElementsByTagName('li');
	for (var i = 0; i < childItems.length; i++) {
		if (i == number) {
			if (!mainMenuOffLocked[number]) {
				mainMenuOffLocked[number] = true;
				setTimeout('mainMenuOff(\'' + obj + '\',' + number + ');', 50);
			}
			else {
				childItems[i].className = childItems[i].className.replace(' hover', '');
				mainMenuOffLocked[number] = false;
			}
			return;
		}
	}
}

// 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) {
				addEvent(childLI[i], 'onmouseover', 'o.className += \' hover\';');
				addEvent(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', '');
}