var version = "13";
var timer;
var loggedUser;
var sessionId;

String.prototype.ltrim = function() {
	return this == null || this == '' ? '' : this.replace(/^\s+/, '');
};
String.prototype.rtrim = function() {
	return this == null || this == '' ? '' : this.replace(/\s+$/, '');
};
String.prototype.trim = function() {
	return this.ltrim().rtrim();
};

function obj(id) {
	return document.getElementById(id);
}

function siteLoadingFailed() {
	var oHomepage = obj('homepage');
	var oInfopage = obj('infopage');
	var oContact = obj('contact');

	var oVolume = obj('volume');
	var oEnter = obj('enter');
	var oContent = obj('content');
	
	if (oHomepage) { oHomepage.id = 'error'; }
	if (oInfopage) { oInfopage.id = 'error'; }
	if (oContact) { oContact.id = 'error'; }

	if (oVolume) { oVolume.style.display = 'none'; }
	if (oEnter) { oEnter.style.display = 'none'; }
	if (oContent) { oContent.innerHTML = new Form().fetchMessage("HTTP_ERROR_500"); }
	return false;
}

/* funkce pro vypínání a zapíná zvuku flashe */
var audioStat = "on";
function setAudio(param) {
	if($.browser.msie) {
		var flashMovie = obj("mainobj");
	} else {
		var flashMovie = obj("main");
	}
	
	flashMovie.SetVariable('audio_stat.astat', audioStat);
	
return false;
}
function setIcon(stat) {
	if (stat == "off") {
		audioStat = "on";
		obj("radiomute").src='/img/u/music-mute.gif';
	} else {
		audioStat = "off";
		obj("radiomute").src='/img/u/music-play.gif';
	}
//	return false;
}

function showVolumeText(stat,lang) {
//	alert ("jazyk: " + lang);
	if (stat == "off") {
		obj("music-text").src='/img/'+lang+'/vypnout-zvuky.gif';
		obj("music-text").style.visibility='visible';
	} else {
		obj("music-text").src='/img/'+lang+'/zapnout-zvuky.gif';
		obj("music-text").style.visibility='visible';
	}
}

function hiddenVolumeText() {
	obj("music-text").style.visibility='hidden';
}

function statAudio(stat) {
	if (stat == "off") {
		setAudio(audioStat);
		audioStat = "on";
	} else {
		setAudio(audioStat);
		audioStat = "off";
	}
	return false;
}

/* funkce pro čtení parametrů z URL */
// parameter script by www.datashaman.com + FHL corrections
function setupParameters() {
	var parameters = new Object();
	if(window.location.search) {
		var paramArray = window.location.search.substr(1).split('&');
		var length = paramArray.length;
		for (var index = 0;index <length; index++ ) {
			var param = paramArray[index].split('=');
			var name = param[0];
			var value =
			typeof param[1] == "string"
				? decodeURIComponent(param[1].replace(/\+/g, ' '))
				: null;
			parameters[name] = value;
		}
	}
	document.parameters = parameters;
}

function getParameter(name) {
	if(typeof document.parameters == "undefined") {
		setupParameters();
	}
	return document.parameters[name];
}


/* cookies skripts */
function setCookie(cookieName, cookieValue, cookieExpirationDays) {
	if (cookieExpirationDays) {
		$.cookie(cookieName, cookieValue, { expires: cookieExpirationDays, path: '/' });
	} else {
		$.cookie(cookieName, cookieValue, { path: '/' });
	}
}

function delCookie(cookieName) { $.cookie(cookieName, null, { path: '/' }); }
function getCookie(cookieName) { return $.cookie(cookieName); }

/* nastevení proměných gohome a gokam */
if (getCookie("fg_gohome") == "true") {
	var intro = "true";
} else {
	var intro = "false";
}

if(getCookie("fg_gokam") == null) {
	var kam = "false";
} else {
	var kam = getCookie("fg_gokam");
}

/* funkce pro nastavení cookies a následné přesměrování */
function reconnect (gohome,gokam,href) {
	setCookie("fg_gohome", gohome, 1);
	setCookie("fg_gokam", gokam, 1);
	window.location.href=href;
}

function reconnectDisable (href) {
	setCookie("fg_gohome", "true", 1);
	setCookie("fg_gokam", "s05|p01&IDdis=true", 1);
	window.location.href=href;
}

/* funkce pro testování požadované verze flashe */
/*function isFlash(ver) {
	var state = false;
	var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : false;
	if (plugin) {
		state = (parseInt(plugin.description.substring(plugin.description.indexOf(".")-2)) >= ver)? true : false;
	}
	else if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.indexOf("MSIE 4") == -1 && navigator.appVersion.indexOf("Macintosh") == -1 && navigator.appVersion.indexOf("68K") == -1) {
		eval('try { var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + ver); state = true; } catch(e) {  }');
	}
	return state;
}*/

/* funkce pro Facebook Connect */
var w;
function popFB (url) {
	//alert(url);
	url = url.split('ext_perm=offline_access&').join('');

	url += '&return_session=1';
	url += '&nochrome=1';
	url += '&extern=2';

	url += '&fbconnect=1';		//	?
	url += '&display=popup';	//	one of these or both = light look
	url += '&popup=1';
	
	winLeft = (screen.width - 456) / 2;
    winTop = (screen.height - 350) / 2;
	winProp = 'toolbar=no,width=455,height=350,scrollbars=yes,left='+winLeft+',top='+winTop;

//	url += '&cancel_url=http://pvt.saetel.net/fbtest/xd_receiver.htm';		//	works
//	url += '&channel_url=http://pvt.saetel.net/fbtest/xd_receiver.htm';
//	url += '&next=http://pvt.saetel.net/fbtest/xd_receiver.htm';

	w = window.open(url,'facebook',winProp);
	//window.open('http://www.facebook.com/share.php?u='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title),'facebook','toolbar=no,width=800,height=450'); return false;
	w.focus();
	//return false;
}
function closeFB()	{
	w.close();	
}
/* funkce pro Encoder visible */
function setEncoderVisible (visible) {
	if($.browser.msie){
		if(visible){
			$(".slaveobj").css("z-index","20");
			
		}else {
			$(".slaveobj").css("z-index","-10");
			
		}		
	}else {
		if(visible){
			$(".slaveobj").css("visibility","visible");
			$(".slaveobj").css("z-index","50");
		}else {
			$(".slaveobj").css("visibility","hidden");
		}
	}
}

/* funkce pro vepsání flashe */
function writeFlash(lid) {

if (DetectFlashVer(9, 0, 124)) {
	obj('flash').innerHTML = '<div class="main"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" \
			id="mainobj" width="942" height="536" align="middle" \
			codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"> \
	    <param name="allowScriptAccess" value="*" /> \
	    <param name="allowFullScreen" value="false" /> \
	    <param name="movie" value="/swf/main.swf?lid=' + lid + '&net=true&lang='+ lang +'&gohome='+ intro +'&gokam='+ kam +'&infos=false;/swf/banners/ban_05.swf&vers=?v'+version+'" /> \
	    <param name="quality" value="high" /> \
	    <param name="bgcolor" value="#DCD9D3" /> \
	    <param name="menu" value="false"> \
	    <embed src="/swf/main.swf?lid=' + lid + '&net=true&lang='+ lang +'&gohome='+ intro +'&gokam='+ kam +'&infos=false;/swf/banners/ban_05.swf&vers=?v'+version+'" quality="high" bgcolor="#DCD9D3" wmode="transparent" id="main" menu="false" width="942" height="536" name="main" align="middle" allowScriptAccess="*" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> \
	</object></div> \
	<div class="slaveobj"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" \
			id="encoder" \
			codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" width="556" height="100"> \
	    <param name="allowScriptAccess" value="*" /> \
	    <param name="allowFullScreen" value="false" /> \
	    <param name="movie" value="/swf/encoder.swf?lid='+ lid +'&lang='+ lang +'&debug=0" /> \
	    <param name="quality" value="high" /> \
	    <param name="bgcolor" value="#DCD9D3" /> \
	    <param name="menu" value="false"> \
	    <embed src="/swf/encoder.swf?lid='+ lid +'&lang='+ lang +'&debug=0" quality="high" bgcolor="#DCD9D3" width="556" height="100" menu="false" name="encoder" align="middle" allowScriptAccess="*" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> \
	</object></div>';
	obj("noflash").innerHTML = "";
} else {
	obj("noflash").style.position='static';
	obj("noflash").style.left='auto';
	obj("noflash").style.top='auto';
	//window.location.href="/cs/noflash.shtml";
}
	delCookie("fg_gohome");
	delCookie("fg_gokam");
	
	if(!$.browser.msie){
		$(".slaveobj").css("visibility","hidden");	
	}

/*	if($.browser.msie) {
		document.getElementById('mainobj').focus();
	} else {
		document.getElementById('main').focus();
	}
*/
}

function getForm(obj) {
	var eForm = obj.parentNode;
	while (eForm.tagName.toUpperCase() != 'FORM') {
		eForm = eForm.parentNode;
	}
	return eForm.tagName.toUpperCase() == 'FORM' ? eForm : null;
}

function ping() {
	UserAjax.isLogged(function(isLogged) { if (!isLogged) showLoginForm(false); });
	timer = setTimeout("ping()", 1000*60*13);
}


// USER MANAGEMENT
function userInit(isLogged) {
	if (isLogged) {
		UserAjax.get(showLoggedInfo);
	} else {
		showLoginForm(false);
	}
}

function userLogin(eForm) {
	try {
		var nick = $("INPUT:text", eForm)[0].value.trim();
		var password = $("INPUT:password", eForm)[0].value.trim();
		if (nick != null && password != null) {
			UserAjax.login(nick, password, showLogin);
		}
	} catch (e) {}
}

function showLogin(user) {
	if (user == null) {
		showLoginForm(true);
	} else {
		showLoggedInfo(user)
		hideRegistrationForm();
	}
}

function showLoginForm(isError) {
	if (timer) clearTimeout(timer);
	if (isError) {
		$("#header .error").show();
	} else {
		$("#header .error").hide();
	}
	$("#header .logged").hide();
	$("#header .login").show();
}

function showLoggedInfo(user) {
	if (user != null) {
		// ulozi objekt user do globalni promenne loggedUser
		loggedUser = user;
		
		// zobrazi info o prihlasenem uzivateli
		$("#header .error").hide();
		var eLoggedInfo = $("#header .logged SPAN")[0];
		if (eLoggedInfo) {
			eLoggedInfo.innerHTML = user.firstname && user.lastname ? user.firstname + ' ' + user.lastname : user.nick;
		}
		$("#header .login").hide();
		$("#header .logged").show();
		
		// spusti intervalovou "udrzovaci" funkci, aby nevyprsela session vlivem neaktivity (nedelame reload)
		ping();
	}
}

function user_login_status() {
	UserAjax.isLogged(setLogged);
}

// registration
function hideRegistrationForm() {
	$("#flash").css("visibility", "visible");
	$("#registration").hide();
	hideRegistrationError();
	hideRegistrationInfo();
}

function showRegistrationForm(isUpdate) {
	if (obj('flash') && obj('registration')) {
		if (isUpdate) {
			prepareRegistrationFormToUpdate();
		} else {
			prepareRegistrationFormToInsert();
		}
		$("#flash").css("visibility", "hidden");
		$("#registration").show();
		return true;
	}
	return false;
}

function prepareRegistrationFormToInsert() {
	var oReg = obj('registration');
	if (oReg) {
		$(oReg).removeClass('update');
		
		var eId = $("INPUT:hidden[name='id']", oReg)[0];
		if (eId) {
			eId.value = 0;
			eId.disabled = true;
		}

		$("INPUT#nick", oReg)[0].disabled = false;
		$("INPUT#nick", oReg).show();
		
		var eNickName = $("SPAN#nick-name", oReg)[0];
                if (eNickName) {
			eNickName.innerHTML = '';
		}
		
		var eNickState = $("SPAN#nick-state", oReg);
		if (eNickState) {
			eNickState.show();
		}

		$("INPUT:password", oReg)[0].value = '';
		$("INPUT:password", oReg)[1].value = '';
		
		$("INPUT:text[name='firstname']", oReg)[0].value = '';
		$("INPUT:text[name='lastname']", oReg)[0].value = '';
		$("INPUT:text[name='email']", oReg)[0].value = '';
		$("INPUT:text[name='phone']", oReg)[0].value = '';
		$("INPUT:text[name='address']", oReg)[0].value = '';
		$("INPUT:text[name='birthday']", oReg)[0].value = '';

		$("INPUT:image.update", oReg).addClass('insert');
		$("INPUT:image.update", oReg).removeClass('update');
		
		$("INPUT:image.insert", oReg).unbind('click');
		$("INPUT:image.insert", oReg).bind('click', function () {
			return registerInsert(this);
		});
		
		$(".contentbox", oReg).show();
		$(".contentbox-update", oReg).hide();

		$(".registration", oReg).show();
		$(".registration-update", oReg).hide();

	}
}


function prepareRegistrationFormToUpdate() {
	var oReg = obj('registration');
	if (oReg && loggedUser) {
		$(oReg).addClass('update');

		$("INPUT:hidden[name='id']", oReg)[0].value = loggedUser.id;

		$("INPUT#nick", oReg)[0].disabled = true;
		$("INPUT#nick", oReg).hide();
		$("SPAN#nick-name", oReg)[0].innerHTML = loggedUser.nick;
		$("SPAN#nick-state", oReg).hide();

		$("INPUT:password", oReg)[0].value = '';
		$("INPUT:password", oReg)[1].value = '';
		
		$("INPUT:text[name='firstname']", oReg)[0].value = loggedUser.firstname;
		$("INPUT:text[name='lastname']", oReg)[0].value = loggedUser.lastname;
		$("INPUT:text[name='email']", oReg)[0].value = loggedUser.email;
		$("INPUT:text[name='phone']", oReg)[0].value = loggedUser.phone;
		$("INPUT:text[name='address']", oReg)[0].value = loggedUser.address;
		$("INPUT:text[name='birthday']", oReg)[0].value = loggedUser.birthday;

		$("INPUT:image.insert", oReg).addClass('update');
		$("INPUT:image.insert", oReg).removeClass('insert');
		
		$("INPUT:image.update", oReg).unbind('click');
		$("INPUT:image.update", oReg).bind('click', function () {
			return registerUpdate(this);
		});
		
		$(".contentbox", oReg).hide();
		$(".contentbox-update", oReg).show();

		$(".registration", oReg).hide();
		$(".registration-update", oReg).show();
	}
}

function showNickExists(isNickExists) {
	var info = $("#registration .box FORM DIV SPAN#nick-state");
	try {
		if (isNickExists) {
			$("#registration INPUT:hidden[name='nickexists']")[0].value = 'true';
			info.addClass("failed");
			info[0].innerHTML = new Form().fetchMessage("FORMREGISTRATION_NICK_EXISTS_FAILED");
		} else {
			$("#registration INPUT:hidden[name='nickexists']")[0].value = 'false';
			info.removeClass("failed");
			info[0].innerHTML = new Form().fetchMessage("FORMREGISTRATION_NICK_EXISTS_PASSED");
		}
	} catch(e) {}
}

function registerInsert(obj) {
	UserAjax.isNickExists($("#registration INPUT:text[name='nick']")[0].value, showNickExists);
	hideRegistrationError();
	hideRegistrationInfo();
	var form = new Form(getForm(obj));
	if (form && form.hasRightShape()) {
		var properties = {
			nick: 'required;checkChars;exists;length5',
			password: 'required',
			passwordCheck: 'required',
			email: 'email;required;checkChars',
			phone: 'phone;checkChars'
		}
		
		form.validate(properties);
		if (form.isValid()) {
			var user = {
				id: 0,
				nick: '',
				password: '',
				firstname: '',
				lastname: '',
				email: '',
				address: '',
				birthday: '',
				phone: ''
			}
			var user = form.fillDataObject(user);
			try {
				UserAjax.register(user, serveRegistrationResult);
			} catch(e) {
				showRegistrationFailed(false);
			}
		} else {
			showRegistrationError(form.getErrorList());
		}
	}
	return false;
}
	
function registerUpdate(obj) {
	hideRegistrationError();
	hideRegistrationInfo();
	var form = new Form(getForm(obj));
	if (form && form.hasRightShape()) {
		var properties = {
			password: '',
			passwordCheck: '',
			email: 'email;required;checkChars',
			phone: 'phone;checkChars'
		}
		
		form.validate(properties);
		if (form.isValid()) {
			var user = {
				id: 0,
				nick: '',
				password: '',
				firstname: '',
				lastname: '',
				email: '',
				address: '',
				birthday: '',
				phone: ''
			}
			var user = form.fillDataObject(user);
			try {
				UserAjax.registerUpdate(user, serveRegistrationUpdateResult);
			} catch(e) {
				showRegistrationFailed(true);
			}
		} else {
			showRegistrationError(form.getErrorList());
		}
	}
	return false;
}

function serveRegistrationResult(user) {
	if (user != null) {
		//hideRegistrationForm();
		showRegistrationPassed(false);
		showLoggedInfo(user);
	} else {
		showRegistrationFailed(false);
	}
}

function serveRegistrationUpdateResult(user) {
	if (user != null) {
		//hideRegistrationForm();
		showRegistrationPassed(true);
		showLoggedInfo(user);
	} else {
		showRegistrationFailed(true);
	}
}

function showRegistrationFailed(isUpdate) {
	var form = new Form();
	if (isUpdate) {
		form.addMessage("FORMREGISTRATION_UPDATE_FAILED");
	} else {
		form.addMessage("FORMREGISTRATION_FAILED");
	}
	showRegistrationError(form.getErrorList());
}

function showRegistrationPassed(isUpdate) {
	var form = new Form();
	if (isUpdate) {
		form.addMessage("FORMREGISTRATION_UPDATE_PASSED");
	} else {
		form.addMessage("FORMREGISTRATION_PASSED");
	}
	showRegistrationInfo(form.getMessageList());
}

function showRegistrationError(messageList) {
	var registrationErrorContent = $("#registration .error DIV.bc .c DIV.content")[0];
	if (registrationErrorContent) {
		registrationErrorContent.innerHTML = messageList;
	}
	$("#registration .error").css("visibility", "visible");
}

function hideRegistrationError() {
	$("#registration .error").css("visibility", "hidden");
	var registrationErrorContent = $("#registration .error DIV.bc .c DIV.content")[0];
	if (registrationErrorContent) {
		registrationErrorContent.innerHTML = '';
	}
}

function showRegistrationInfo(messageList) {
	var registrationInfoContent = $("#registration .info DIV.bc .c DIV.content")[0];
	if (registrationInfoContent) {
		registrationInfoContent.innerHTML = messageList;
	}
	$("#registration .info").css("visibility", "visible");
}

function hideRegistrationInfo() {
	$("#registration .info").css("visibility", "hidden");
	var registrationInfoContent = $("#registration .info DIV.bc .c DIV.content")[0];
	if (registrationInfoContent) {
		registrationInfoContent.innerHTML = '';
	}
}

// ** USER MANAGEMENT

// FLASH SETTERS

function setLogged(isLogged) {
	if($.browser.msie) {
		var flashMovie = obj("mainobj");
	} else {
		var flashMovie = obj("main");
	}
	if(isLogged) {
		//when user is logged in, jsessionid is passed to flash
		UserAjax.getSessionId(isLogged, setLoggedSessionId);
	}
	else {
		flashMovie.SetVariable('user_log.login', isLogged);
	}
}

function setLoggedSessionId(sessionId) {
	if($.browser.msie) {
		var flashMovie = obj("mainobj");
	} else {
		var flashMovie = obj("main");
	}
	flashMovie.SetVariable('user_log.login', sessionId);
}

function setGalleryList(list) {
	if($.browser.msie) {
		var flashMovie = obj("mainobj");
	} else {
		var flashMovie = obj("main");
	}
	flashMovie.SetVariable('listgallery.l', list);
}

function setGalleryDetail(detail) {
	if($.browser.msie) {
		var flashMovie = obj("mainobj");
	} else {
		var flashMovie = obj("main");
	}
	flashMovie.SetVariable('detailgallery.d', detail);
}

function setGalleryTop(top) {
	if($.browser.msie) {
		var flashMovie = obj("mainobj");
	} else {
		var flashMovie = obj("main");
	}
	flashMovie.SetVariable('topgallery.t', top);
}

function setAuction(auction) {
	if($.browser.msie) {
		var flashMovie = obj("mainobj");
	} else {
		var flashMovie = obj("main");
	}
	flashMovie.SetVariable('aukceget.g', auction);
}

// ** FLASH INVOKE
