/**
 * Odpocet pro kontrolovani casu
 */
var timeout = null;
/**
 * Seznam kol ktere se maji roztocit
 */
var wheels = null;
/**
 * Interval pro kontrolu casu - kdyz cas souhlasi, posle se pozadavek na server s dotazem na viteze
 */
var checkingTimeInterval = 60000;

/**
 * Roztaceci cas a jeho nastaveni
 */
var startDate = new Date();
startDate.setHours(20, 0, 0, 0);
/**
 * Cas odpoctu je minutu pred roztocenim
 */
var startCountdownDate = new Date(startDate.getTime() - 60000);

/**
 * Zacne kontrolovat cas.
 */
function startCheckingWheels() {
	if (timeout != null) clearTimeout(timeout);
	checkWheels();
}

/**
 * Kontroluje cas a pokud je ve stanovenych mezich posle pozadavek na server.
 */
function checkWheels() {
	timeout = setTimeout(checkWheels , checkingTimeInterval);
	var date = new Date();
	var startDiff = startDate.getTime() - new Date().getTime();
    
	//provede se v case od 5 minut pred startem
	if (startDiff < 300000 && startDiff > 0) { //-600000) {
		//if (date.getHours() == 19 && date.getMinutes() > 55 || date.getHours() == 20 && date.getMinutes() < 10) {
    //if (true) {
		dojo.xhrPost({
			url: "functions/ajax/wheels_checking.php",
			handleAs: "json",
			content: {
				check_wheels: true
			},
			load: function(data){
				wheels = data.wheels;
				if (wheels != null && wheels.length > 0) {
					var diff = startCountdownDate.getTime() - new Date().getTime();
					if (diff < 0) diff = 0;
					setTimeout(runWheels, diff);
				}
			},
			error: function(data){
			}
		});

		clearTimeout(timeout);
	}

}

function runWheels() {
	for (var i in wheels) {
		var wheel = wheels[i];
		//status 0 nastavuju pokud uz kolo bylo odstartovano - kvuli testovani jestli je applet nacteny
		if (wheel.status > 0) {
			var applet = document.getElementById('wheel' + wheel.id_wheels);
			//applet je nacteny
			if (isAppletActive(applet)) {
				wheel.status = 0;
				var diff = startDate.getTime() - new Date().getTime();
				if (diff < 0) diff = 10000;
				//roztoceni kola
				applet.start(wheel.sector_number, diff/1000, true);
				//ulozeni do session ze se kolo uz rotocilo
				dojo.xhrPost({
					url: "functions/ajax/wheels_checking.php",
					handleAs: "json",
					content: {
						check_wheels: false,
						rotated_id_wheels: wheel.id_wheels
					},
					load: function(data){
					},
					error: function(data){
					}
				});
				//nastaveni udaju o kole - ze uz bylo roztoceno
				setWheelDataAfterRotating(wheel.id_wheels, null);
			} else {
				setTimeout(runWheels, 5000);
			}
		} else if (wheel.status == -1) { //status -1 znamena ze uzivatel refreshnul, tak aby se kolo neroztocilo znova
			var applet = document.getElementById('wheel' + wheel.id_wheels);
			if (isAppletActive(applet)) {
				wheel.status = 0;
				applet.showWinner(wheel.sector_number);
				//nastaveni udaju o kole - ze uz bylo roztoceno
				setWheelDataAfterRotating(wheel.id_wheels, wheel.login);
			}
		}
	}
}

function setWheelDataAfterRotating(wheelId, nick) {
	if (nick != null) document.getElementById("info_div" + wheelId).innerHTML = "DÃ¡rek zÃ­skal uÅ¾ivatel " + nick + ".";
	document.getElementById("text_for_trial_rotating" + wheelId).style.display = "";
	document.getElementById("button_for_trial_rotating" + wheelId).style.display = "none";
	document.getElementById("blinkingSpan" + wheelId).innerHTML = "UkonÄeno";
}

function setMaxTextLength(wheelId) {
    /*
	var applet = document.getElementById('wheel' + wheelId);
	if (applet.isActive()) {
		var l = applet.script.bridge.getMaxTextLength();
		document.getElementById('text_length_wheel' + wheelId).innerHTML = "V dÃ­lcÃ­ch tohoto kola je moÅ¾nÃ© zobrazit text o maximÃ¡lnÃ­ dÃ©lce pÅibliÅ¾nÄ " + l + " znakÅ¯.";
	} else {
		setTimeout("setMaxTextLength(\"" + wheelId + "\")", 1000);
	}*/
}

function isAppletActive(applet) {
	var ok = true;
	/*try {
		ok = applet != null && applet.isActive != null && applet.isActive();
	} catch (ex) {
		ok = navigator.appName != "Netscape"; //IE vyhodi chybu pri volani isActive, pokud je applet Active:)
	}*/
	return ok;
}

function getFlashMovie(movieName) {
  var isIE = navigator.appName.indexOf("Microsoft") != -1;
  return (isIE) ? window[movieName] : document[movieName];
}

/**
 * Odpocet pro kontrolovani casu
 */
var timeout = null;
/**
 * Seznam kol ktere se maji roztocit
 */
var wheels = null;
/**
 * Interval pro kontrolu casu - kdyz cas souhlasi, posle se pozadavek na server s dotazem na viteze
 */
var checkingTimeInterval = 60000;

/**
 * Roztaceci cas a jeho nastaveni
 */
var startDate = new Date();
startDate.setHours(20, 0, 0, 0);
/**
 * Cas odpoctu je minutu pred roztocenim
 */
var startCountdownDate = new Date(startDate.getTime() - 60000);

/**
 * Zacne kontrolovat cas.
 */
function startCheckingWheels() {
	if (timeout != null) clearTimeout(timeout);
	checkWheels();
}

/**
 * Kontroluje cas a pokud je ve stanovenych mezich posle pozadavek na server.
 */
function checkWheels() {
	timeout = setTimeout(checkWheels , checkingTimeInterval);
	var date = new Date();
	var startDiff = startDate.getTime() - new Date().getTime();
    
	//provede se v case od 5 minut pred startem
	if (startDiff < 300000 && startDiff > 0) { //-600000) {
		//if (date.getHours() == 19 && date.getMinutes() > 55 || date.getHours() == 20 && date.getMinutes() < 10) {
		//if (true) {
		dojo.xhrPost({
			url: "functions/ajax/wheels_checking.php",
			handleAs: "json",
			content: {
				check_wheels: true
			},
			load: function(data){
				wheels = data.wheels;
				if (wheels != null && wheels.length > 0) {
					var diff = startCountdownDate.getTime() - new Date().getTime();
					if (diff < 0) diff = 0;
					setTimeout(runWheels, diff);
				}
			},
			error: function(data){
			}
		});

		clearTimeout(timeout);
	}

}

function runWheels() {
	for (var i in wheels) {
		var wheel = wheels[i];
		//status 0 nastavuju pokud uz kolo bylo odstartovano - kvuli testovani jestli je applet nacteny
		if (wheel.status > 0) {
			var applet = document.getElementById('wheel' + wheel.id_wheels);
			//applet je nacteny
			if (isAppletActive(applet)) {
				wheel.status = 0;
				var diff = startDate.getTime() - new Date().getTime();
				if (diff < 0) diff = 10000;
				//roztoceni kola
				applet.script.bridge.start(wheel.sector_number, diff/1000, true);
				//ulozeni do session ze se kolo uz rotocilo
				dojo.xhrPost({
					url: "functions/ajax/wheels_checking.php",
					handleAs: "json",
					content: {
						check_wheels: false,
						rotated_id_wheels: wheel.id_wheels
					},
					load: function(data){
					},
					error: function(data){
					}
				});
				//nastaveni udaju o kole - ze uz bylo roztoceno
				setWheelDataAfterRotating(wheel.id_wheels, null);
			} else {
				setTimeout(runWheels, 5000);
			}
		} else if (wheel.status == -1) { //status -1 znamena ze uzivatel refreshnul, tak aby se kolo neroztocilo znova
			var applet = document.getElementById('wheel' + wheel.id_wheels);
			if (isAppletActive(applet)) {
				wheel.status = 0;
				applet.script.bridge.showWinner(wheel.sector_number);
				//nastaveni udaju o kole - ze uz bylo roztoceno
				setWheelDataAfterRotating(wheel.id_wheels, wheel.login);
			}
		}
	}
}

function setWheelDataAfterRotating(wheelId, nick) {
	if (nick != null) document.getElementById("info_div" + wheelId).innerHTML = "Dárek získal uživatel " + nick + ".";
	document.getElementById("text_for_trial_rotating" + wheelId).style.display = "";
	document.getElementById("button_for_trial_rotating" + wheelId).style.display = "none";
	document.getElementById("blinkingSpan" + wheelId).innerHTML = "Ukončeno";
}

function setMaxTextLength(wheelId) {
	var applet = document.getElementById('wheel' + wheelId);
	if (applet.isActive()) {
		var l = applet.script.bridge.getMaxTextLength();
		document.getElementById('text_length_wheel' + wheelId).innerHTML = "V dílcích tohoto kola je možné zobrazit text o maximální délce přibližně " + l + " znaků.";
	} else {
		setTimeout("setMaxTextLength(\"" + wheelId + "\")", 1000);
	}
}

function isAppletActive(applet) {
	var ok = false;
	try {
		ok = applet != null && applet.isActive != null && applet.isActive();
	} catch (ex) {
		ok = navigator.appName != "Netscape"; //IE vyhodi chybu pri volani isActive, pokud je applet Active:)
	}
	return ok;
}

