﻿// Ovládání prezentace vytvořené pomocí inCMS

// Inicializační fce po načtení stránky
addEventx(window,'onload','pageInit();');
function pageInit() {
    fixPNG();
    hoverByClass('a','fixhover');

    if (getObj('dragbar')) scrollInit();
    if (getObj('gallery')) scrollGalleryInit();

    innerChangeContentInit();
}


// 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';
                childItems[i].getElementsByTagName('a')[0].innerHTML += '<img src="images/design/MenuArrow.png" height="5" width="10" alt="" class="imgPNG arrow" />';
				}	
			}
		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 pridani pozadi hlavniho divu main
function selectMainBG() {
    var time = new Date();
    if (time.getHours() >= 18 || time.getHours() < 7) getObj('main').style.background = 'url(images/design/IndexBG/Night.jpg)';
    else getObj('main').style.background = 'url(images/design/IndexBG/Day.jpg)';
}

// Fce pro opravu PNG v IE6
function fixPNG() {
    var debug = false;
    var imagesPNG = getElementsByClass('img','imgPNG');
    var html = '';
    var parent = new Array();
    var html = new Array();
    if (imagesPNG.length > 0) for (var i in imagesPNG) {
        if (browser.IE6 || debug) {
        parent[i] = imagesPNG[i].parentNode;
        html[i] = '<span style="width: '+ getObjStyle(imagesPNG[i],'width') +'; height: '+ getObjStyle(imagesPNG[i],'height') +'; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+ imagesPNG[i].src +',sizingMethod=scale);" class="'+ imagesPNG[i].className +'"></span>';
        parent[i].removeChild(imagesPNG[i]);
        }
        else imagesPNG[i].className = imagesPNG[i].className.replace('imgPNG','');
    }
    if (browser.IE6 || debug) for (var i in parent) {
        parent[i].innerHTML += html[i];
    }
}

function menuPNG(id,address,width,height,classname) {
    if (browser.IE6) {
        document.write('<span style="width: '+width+'px; height: '+height+'px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=http://www.lifeisarace.cz/'+ address +',sizingMethod=scale);overflow: hidden" class="'+ classname +'"></span>');
    }
    else {
		var el=document.createElement("img");
		el.setAttribute('src',address);
		el.setAttribute('height',height);
		el.setAttribute('width',width);
		el.setAttribute('alt','');
		el.setAttribute('class',classname);
		document.getElementById(id).appendChild(el);
        //document.writeln('<img src="'+address+'" height="'+height+'" width="'+width+'" alt="" class="'+classname+'" />');
    }
}


// AJAX pozadavek
//
var httpRequest = new Array();
var httpID = 0;
var innerChangeHTML = '';
function AJAXcalling(request,response) {

httpID++;

var requestid = httpID;

if (window.ActiveXObject)
       { httpRequest[requestid] = new ActiveXObject("Microsoft.XMLHTTP"); }
else
        { httpRequest[requestid] = new XMLHttpRequest(); }
        httpRequest[requestid].open("GET", request, true);
        httpRequest[requestid].onreadystatechange= function () { AJAXfce(requestid,request,response); } ;
        httpRequest[requestid].send(null);
}

// AJAX *********************************
function AJAXfce(requestid,request,response)
{
  if (httpRequest[requestid].readyState == 4) {
    if(httpRequest[requestid].status == 200) {
        //alert(httpRequest[requestid].responseText);
        AJAXcallback(httpRequest[requestid].responseText,request,response);
    }
    else
    {
        alert('error - '+httpRequest[requestid].status+' - '+httpRequest[requestid].statusText);
    }
  }
}

// Navratova fce z AJAXu
//
function AJAXcallback(val,request,response) {
    var start = val.indexOf('<div id="scroll">');
    var stop = val.indexOf('</div id="scroll">');
    innerChangeHTML = val.substring(start+18,stop);
    title = val.substring(val.indexOf('<h1>')+4,val.indexOf('</h1>'));
    document.title = 'Burnout - ' + title;
    //alert(innerChangeHTML);
}

// Init fce pro meneni obsahu ajaxem
//
function innerChangeContentInit() {
    var aElements = getElementsByClass('a','innerChangeContent');
    if (aElements.length > 0) for (var i in aElements) {
        addEventx(aElements[i],'onclick','innerChangeContent(this); return false;');
    }
}

// Init fce pro meneni obsahu ajaxem
//
var innerChangeContentInterval;
function innerChangeContent(item) {
    window.clearInterval(innerChangeContentInterval);
    getElementsByClass('a','innerChangeContent selected')[0].className = 'innerChangeContent';
    item.blur();
    item.className += ' selected';
    AJAXcalling(item.href,'innerChangeHTML');
    innerChangeContentInterval = window.setInterval('innerChangeContentFadeout()',1);
}
var contentFade = 100;
function innerChangeContentFadeout() {
    if (contentFade > 0) {

    contentFade -= 5;
    if (getObj('scroll').style.MozOpacity!=null) {
	    /* Mozilla's pre-CSS3 proprietary rule */
	    getObj('scroll').style.MozOpacity = contentFade/100;
    } else if (getObj('scroll').style.opacity!=null) {
        /* CSS3 compatible */
    	getObj('scroll').style.opacity = contentFade;
    } else if (getObj('scroll').style.filter!=null) {
    	/* IE's proprietary filter */
    	getObj('scroll').style.filter = "alpha(opacity="+contentFade+")";
    }

    }
    else {
        if (innerChangeHTML.length > 0) {
            window.clearInterval(innerChangeContentInterval);
            getObj('scroll').innerHTML = innerChangeHTML;
            if (getObj('dragbar')) scrollInit();
            innerChangeHTML = '';
            innerChangeContentInterval = window.setInterval('innerChangeContentFadein()',1);
        }
    }
}
function innerChangeContentFadein() {
    if (contentFade < 100) {

    contentFade += 5;
    if (getObj('scroll').style.MozOpacity!=null) {
	    /* Mozilla's pre-CSS3 proprietary rule */
	    getObj('scroll').style.MozOpacity = contentFade/100;
    } else if (getObj('scroll').style.opacity!=null) {
        /* CSS3 compatible */
    	getObj('scroll').style.opacity = contentFade;
    } else if (getObj('scroll').style.filter!=null) {
    	/* IE's proprietary filter */
    	getObj('scroll').style.filter = "alpha(opacity="+contentFade+")";
    }

    }
    else {
            window.clearInterval(innerChangeContentInterval);
        }
}

function scrollInit() {
    var contentScroll = new dw_scrollObj('content', 'scroll');
    contentScroll.bSizeDragBar = false;
    contentScroll.setUpScrollbar("dragbar", "scrollbar", "v", 1, 1);
}

function scrollGalleryInit() {
    var galleryScroll = new dw_scrollObj('gallery', 'scroll');
    var galleryItems = getElementsByClass('a','galleryItem');
    var pages = Math.ceil(galleryItems.length/5);
    for (var i=1; i<=pages; i++) {
        getObj('galleryPages').innerHTML += '<a href="javascript: activePage('+i+');" id="gPage'+i+'">'+i+'</a>';
    }
    activePage(1);
}
var actPage = 1;
function activePage(val) {
    if (val == '+') {
        if (getObj('gPage'+(actPage+1))) {
            if (actPage) getObj('gPage'+actPage).className = '';
            actPage += 1;
            getObj('gPage'+actPage).className = 'selected';
            dw_scrollObj.scrollBy('gallery',-840,0);
        }
        return;
    }
    if (val == '-') {
        if (getObj('gPage'+(actPage-1))) {
            if (actPage) getObj('gPage'+actPage).className = '';
            actPage -= 1;
            getObj('gPage'+actPage).className = 'selected';
            dw_scrollObj.scrollBy('gallery',840,0);
        }
        return;
    }
    if (actPage) getObj('gPage'+actPage).className = '';
    getObj('gPage'+val).className = 'selected';
    dw_scrollObj.scrollTo('gallery',(val-1)*840,0);
    actPage = val;
}

function scrollContent(val) {
    var subCont = getElementsByClass("div","subContent");
    var offHeight = 0;
    for (var i = 1; i < val; i++) {
        offHeight += subCont[i-1].offsetHeight;
    }
    dw_scrollObj.scrollTo("content",0,offHeight);
}