/* common javascript */

function pause(millis) {
	date = new Date();
	var curDate = null;
	do {var curDate = new Date();} while(curDate-date < millis);
} 

/* set global gallery variables to initial values */
var galleryInitial = 1;
var galleryPictures = 5;
var galleryCurrent = galleryInitial;
var galleryFolder = base_static_dir + "images/photo/";
var galleryPrefix = "";
var gallerySuffix = ".jpg";
var galleryPicNrWidth = 2;
var galleryPicNr = "unknown";
var galleryPicURL = "unknown";

var galleryPreload = new Array();

function preloadGallery() {
	for (w = galleryInitial; w <= galleryPictures; w++) {
		galleryPreload[w] = new Image();
		galleryPreload[w].src = getGalleryPicURL(w);
	}
}

function getGalleryPicURL(nr) {
	if (nr < 10) galleryPicNr = galleryPicNrWidth - 1;
		else if (nr < 100) galleryPicNr = galleryPicNrWidth - 2;
		else if (nr < 1000) galleryPicNr = galleryPicNrWidth - 3;
	if (galleryPicNr < 1) galleryPicNr = 0;
	for (i = 0; i < galleryPicNr; i++) nr = "0"+nr;
	galleryPicNr = nr;
	galleryPicURL = galleryFolder+galleryPrefix+galleryPicNr+gallerySuffix;
	return galleryPicURL;
}

/* set global scroll-page-to-gallery variables to initial values */
var pageElement = "unknown";document.getElementById("page");
var contentElement = "unknown";document.getElementById("pageContent");
var browserScrollMethod = "unknown";contentElement.scrollHeight;

doNothing = function() {
	return false;
}
scrollPhotoLeft = function() {
	if((galleryCurrent-1) > 0) galleryCurrent = galleryCurrent - 1;
	else galleryCurrent = galleryPictures;
	document.getElementById("photo").src = getGalleryPicURL(galleryCurrent);
	return false;
}
scrollPhotoRight = function() {
	if((galleryCurrent+1) <= galleryPictures) galleryCurrent = galleryCurrent + 1;
	else galleryCurrent = galleryInitial;
	document.getElementById("photo").src = getGalleryPicURL(galleryCurrent);
	return false;
}


function Mod(X, Y) {
	return X - Math.floor(X / Y) * Y;
}

hoverRight = function() {
	document.getElementById("rightShade").style.opacity = 0.66;
	document.getElementById("rightShade").style.filter = "alpha(opacity=66)";
}
hoverRightO = function() {
	document.getElementById("rightShade").style.opacity = 0.33;
	document.getElementById("rightShade").style.filter = "alpha(opacity=33)";
}
hoverLeft = function() {
	document.getElementById("leftShade").style.opacity = 0.66;
	document.getElementById("leftShade").style.filter = "alpha(opacity=66)";
}
hoverLeftO = function() {
	document.getElementById("leftShade").style.opacity = 0.33;
	document.getElementById("leftShade").style.filter = "alpha(opacity=33)";
}

startGallery = function() {
	document.getElementById("scrollphotoRight").src = base_static_dir + "images/ico-arr-right.gif";
	document.getElementById("scrollphotoRight").style.width = "25px";
	document.getElementById("gallerySwitch").src = base_static_dir + "images/"+langC+"/switch-content.gif";
	document.getElementById("gallerySwitch2").style.display = "block";
	evt.remove(document.getElementById("rightShade"),'click',scrollPageToGallery); // var element, on event, var function
	evt.add(document.getElementById("rightShade"),'click',scrollPhotoRight); // var element, on event, var function
	evt.remove(document.getElementById("gallerySwitch"),'click',scrollPageToGallery); // var element, on event, var function
	evt.add(document.getElementById("gallerySwitch"),'click',scrollPageToContent); // var element, on event, var function

	document.getElementById("rightShade").style.opacity = 0.33;
	document.getElementById("rightShade").style.filter = "alpha(opacity=33)";
	evt.add(document.getElementById("rightShade"),'mouseover',hoverRight); // var element, on event, var function
	evt.add(document.getElementById("rightShade"),'mouseout',hoverRightO); // var element, on event, var function
	document.getElementById("leftShade").style.opacity = 0.33;
	document.getElementById("leftShade").style.filter = "alpha(opacity=33)";
	evt.add(document.getElementById("leftShade"),'mouseover',hoverLeft); // var element, on event, var function
	evt.add(document.getElementById("leftShade"),'mouseout',hoverLeftO); // var element, on event, var function
}

var curs = 0; // pocatecni uroven scrollu, 0 = content
var cursStepDefault = 30; // skok po kterem se vrstva posouva
var cursStep = cursStepDefault; // krok upravovany podle sirky okna
var cursSpeedDefault = 10; // pocatecni rychlost scrollu
var cursSpeed = cursSpeedDefault; // aktualni rychlost scrollu (zvysuje se)
var cursIterate = 0; // pocitadlo iteraci scrollskoku
var cursExpone = 1.1; // exponencialni cinitel pro snizovani rychlosti a kroku

scrollLeft = function() {
	var cursFadeIteration = (((document.body.clientWidth - 150)) / cursStepDefault) / 1.33;
	cursIterate = cursIterate + 1;
	curs = curs + cursStep;
	if(cursIterate >= cursFadeIteration && Mod(cursIterate,2) > 0) {
		if (cursSpeed < 50) cursSpeed = Math.round(cursSpeed * cursExpone);
		if (cursStep > 1) cursStep = Math.round(cursStep / (cursExpone*cursExpone));
	}
	if (curs <= (document.body.clientWidth - 150)) {
		pageElement.style.left = curs + "px";
		scroller = setTimeout(scrollLeft,cursSpeed);
		//window.status = "iterace: "+cursIterate+", rychlost: "+cursSpeed+", krok: "+cursStep;
	} else {
		clearTimeout(scroller);
		curs = document.body.clientWidth - 150;
		cursSpeed = cursSpeedDefault;
		cursStep = cursStepDefault;
		cursIterate = 0;
		pageElement.style.left = curs + "px";
		startGallery();
	}
}
scrollRight = function() {
	var cursFadeIteration = (((document.body.clientWidth - 150)) / cursStepDefault) / 1.33;
	cursIterate = cursIterate + 1;
	curs = curs - cursStep;
	if(cursIterate >= cursFadeIteration && Mod(cursIterate,2) > 0) {
		if (cursSpeed < 50) cursSpeed = Math.round(cursSpeed * cursExpone);
		if (cursStep > 1) cursStep = Math.round(cursStep / (cursExpone*cursExpone));
	}
	if (curs >= 0) {
		pageElement.style.left = curs + "px";
		scroller = setTimeout(scrollRight,cursSpeed);
		//window.status = "iterace: "+cursIterate+", rychlost: "+cursSpeed+", krok: "+cursStep;
	} else {
		clearTimeout(scroller);
		curs = 0;
		cursSpeed = cursSpeedDefault;
		cursStep = cursStepDefault;
		cursIterate = 0;
		pageElement.style.left = curs + "px";
		initGallery();
	}
}

scrollPageToGallery = function() {
	//if (browserScrollMethod > 0) { contentElement.scrollTop = 0; /*objDiv.scrollHeight;*/ } else { contentElement.scrollTop = 0; /*objDiv.offsetHeight;*/ };
	// pageElement.style.left = (document.body.clientWidth - 150)+"px";
	scrollLeft();
	return false;
}
scrollPageToContent = function() {
	scrollRight();
	return false;
}

function initGallery() {
	if(evt.remove(document.getElementById("rightShade"),'click',scrollPhotoRight)) evt.remove(document.getElementById("rightShade"),'click',scrollPhotoRight);
	if(evt.remove(document.getElementById("gallerySwitch"),'click',scrollPageToContent)) evt.remove(document.getElementById("gallerySwitch"),'click',scrollPageToContent);
	document.getElementById("gallerySwitch2").style.display = "none";
	document.getElementById("gallerySwitch").src = base_static_dir + "images/"+langC+"/switch-gallery.gif";
	document.getElementById("scrollphotoLeft").src = base_static_dir + "images/ico-arr-left.gif";
	document.getElementById("scrollphotoRight").src = base_static_dir + "images/ico-arr-left-a.gif";
	document.getElementById("scrollphotoRight").style.width = "29px";
	evt.add(document.getElementById("gallerySwitch"),'click',scrollPageToGallery); // var element, on event, var function
	evt.add(document.getElementById("gallerySwitch2"),'click',scrollPageToContent); // var element, on event, var function
	evt.add(document.getElementById("leftShade"),'click',scrollPhotoLeft); // var element, on event, var function
	evt.add(document.getElementById("rightShade"),'click',scrollPageToGallery); // var element, on event, var function
	
	document.getElementById("rightShade").style.opacity = 0.66;
	document.getElementById("rightShade").style.filter = "alpha(opacity=66)";
	if(evt.remove(document.getElementById("rightShade"),'mouseover',hoverRight)) evt.remove(document.getElementById("rightShade"),'mouseover',hoverRight); // var element, on event, var function
	if(evt.remove(document.getElementById("rightShade"),'mouseout',hoverRightO)) evt.remove(document.getElementById("rightShade"),'mouseout',hoverRightO); // var element, on event, var function
	document.getElementById("leftShade").style.opacity = 0.66;
	document.getElementById("leftShade").style.filter = "alpha(opacity=66)";
	if(evt.remove(document.getElementById("leftShade"),'mouseover',hoverLeft)) evt.remove(document.getElementById("leftShade"),'mouseover',hoverLeft); // var element, on event, var function
	if(evt.remove(document.getElementById("leftShade"),'mouseout',hoverLeftO)) evt.remove(document.getElementById("leftShade"),'mouseout',hoverLeftO); // var element, on event, var function
}

fixscroll = function() {
	if(curs > 0) {
		curs = document.body.clientWidth - 150;
		pageElement.style.left = curs + "px";
	}
}

/* "onload" left-page-side-gallery creator */
renderGallery = function() {
	
	//clearTimeout("rendergalleryto");
	// explore enviroment and fill some variables
	pageElement = document.getElementById("page");
	contentElement = document.getElementById("pageContent");
	browserScrollMethod = contentElement.scrollHeight;

	// add opacity to overlayshade elements
	document.getElementById("leftShade").style.opacity = "0.66";
	document.getElementById("rightShade").style.opacity = "0.66";
	
	// modify menu structure
	/*document.getElementById("menu").className = "noGallery";
	document.getElementById("menu-gallery").style.display = "none";*/
	
	// show gallery divs
	document.getElementById("photoBox").style.display = "block";
	document.getElementById("upShade").style.display = "block";

	// set-up gallery enviroment
	document.getElementById("photo").src = getGalleryPicURL(galleryInitial);

	// attach window onresize event
	evt.add(window,'resize',fixscroll); // var element, on event, var function

	// initialize gallery
	preloadGallery();
	initGallery();
	
}


hideGalleryButton = function() {
	/*Schova polozku galerie v menu, pokud je k dispozici JS.*/
	/*document.getElementById("menu-gallery").style.display = "none";*/
	/*document.getElementById("menu").className = "noGallery";*/
}


DOM.Ready.onDOMReady( hideGalleryButton );

/* run when all elements are rendered */
$(document).ready(function() {
	$('#jsGallery').prepend('<div id="upShade"></div><div id="photoBox"><img src="'+base_static_dir+'images/test.jpg" alt="&lt;- -&gt;" id="photo" /><div id="leftShade" class="overlayShade"><img src="'+base_static_dir+'images/ico-arr-left.gif" alt="&laquo;" id="scrollphotoLeft" /></div><div id="rightShade" class="overlayShade"><img src="'+base_static_dir+'images/ico-arr-right.gif" alt="&raquo;" id="scrollphotoRight" /></div><div id="switch"><img src="'+base_static_dir+'images/cz/switch-gallery.gif" alt="" id="gallerySwitch" /><img src="'+base_static_dir+'images/ico-arr-right-a.gif" alt="" id="gallerySwitch2" /></div></div>');
	rendergalleryto = setTimeout(renderGallery,500);
});

