/**
* Javascript pro globalHeader
*
* @author Radek Zemznek
* @copyright Ceska televize
* @version 1.0.15.11.11
*
* @uses jQuery 1.4.3
*/
var HeaderCT = {
	charset: "utf-8",
	URLDynamicBox: "/inc/header/dynamicBox.php",
	dynamicBox: {
		ivysilani: false,
		tvprogram: false,
		poradyaz:false
	},
	/**
	* Nastavi eventy
	*
	* @return void
	*/
	handler: function() {
		if (typeof(FB) != "undefined") {
			// FB init
			FB.init({
				appId: '171737736189417',
				status: true,
				domain: (document.domain.indexOf('ct24') > 0 ? 'ct24.cz' : 'ceskatelevize.cz'),
				cookie: true,
				xfbml: true,
				channelUrl: window.location.protocol + '//www.ceskatelevize.cz/inc/header/channel.html'
			});

			FB.Event.subscribe('auth.login', function(response) {
				window.location.reload();
			});
		}

		$('#headerCzechTV .logo span').mouseover(function(E) {
			if ($(this).hasClass('hover')) {
				return true;
			}

			$(this).addClass('hover');
		});

		$('#headerCzechTV .logo span').mouseout(function(E) {
			if (!$(this).hasClass('hover')) {
				return true;
			}

			$(this).removeClass('hover');
		});


		$('#headerCzechTV').append('<span id="alertLocation" style="display: none"></span>');

		// Schova vsechny okna
		$(document.body).click(function(E) {
			HeaderCT.hide();
		});

		// Otevre okno dalsi
		$('#headerCzechTV #headerCzechTVMenu .other').click(function(E) {
			E.stopPropagation(); E.preventDefault();
			HeaderCT.show('other');
			$(this).blur();
		});

		// Otevre prihlaseni
		$('#headerCzechTVPersonal .hrefLogin').click(function(E) {
			E.stopPropagation();E.preventDefault();

			var pos = $(this).offset();

			HeaderCT.show('loginForm');
			$(this).blur();
		});

		// Otevre registraci
		$('#headerCzechTVPersonal .hrefRegistration').click(function(E) {
			E.stopPropagation(); E.preventDefault();
			HeaderCT.show('registrationForm');
			$(this).blur();
		});

		// Otevre searchbox
		$('#headerCzechTVSearchHref').click(function(E) {
			E.stopPropagation(); E.preventDefault();
			HeaderCT.show('searchForm');
			$(this).blur();
		});


		// Odhlaseni
		$('#headerCzechTVPersonal .hrefLogout').click(function(E) {
			E.stopPropagation();E.preventDefault();
			HeaderCT.logout();
			$(this).blur();
		});

		// Zruseni eventu pri kliku na formularove prvky
		$('#headerCzechTVRegistrationForm *').click(function(E) { E.stopPropagation(); E.preventDefault(); });
		$('#headerCzechTVRegistrationForm a').click(function(E) {
			if ($(this).attr('rel')) {
				HeaderCT.show($(this).attr('rel'));
				return false;
			}
			location.href = $(this).attr('href');
			$(this).blur();
		});
		$('#headerCzechTVRegistrationForm .checkName').click(function(E) {
			HeaderCT.verifyLogin();
		});
		$('#headerCzechTVRegistrationForm .submitButton').click(function(E) { HeaderCT.registration(); });


		// Schovani google backgroundu u search input
		$('#headerCzechTVForm input[name="q"]').one('click', function(E) {
			$('#headerCzechTV .search .textBox').css('background-image', 'none');
		});

		// Zruseni eventu pri kliku na formularove prvky
		$('#headerCzechTVLoginForm *').click(function(E) { E.stopPropagation(); E.preventDefault(); });
		$('#headerCzechTVLoginForm a').click(function(E) { HeaderCT.show('registrationForm'); });
		$('#headerCzechTVLoginForm .submitButton').click(function(E) { HeaderCT.login(); });

		// Vysouvaci boxy
		$('#headerCzechTVMenu .arrow').click(function(E) {
			if (!$(this).attr('rel')) {
				return true;
			}

			$(this).addClass('arrowLoading');

			E.stopPropagation();
			E.preventDefault();

			$(this).blur();

			HeaderCT.showBox(this);
		});

	},
	/**
	* Zobrazi dynanimicky box
	*
	* @param object $OBJ
	* @return void
	*/
	showBox: function(OBJ) {
		var boxID = 'headerCzechTVdynamicBox-' + $(OBJ).attr('rel');

		if ($('#' + boxID).is(':visible')) {
			$(OBJ).removeClass('arrowLoading');
			$('#' + boxID).slideUp();
			return true;
		}

		// Zjistime jestli dany box jiz exituje, pokud ne, vytvorime ho
		if (!$('#headerCzechTVMenu #' + boxID).length) {
			$('#headerCzechTVMenu').append('<div class="headerCzechTVDynamicBox" id="' + boxID + '"></div>');
		}

		$('#headerCzechTVMenu .headerCzechTVDynamicBox').hide();

		// Nacteni obsahu do dynamickeho bloku hlavicky
		if (!this.dynamicBox[$(OBJ).attr('rel')]) {
			var now = new Date();
			// Ziskani dat
			$.get(this.URLDynamicBox, {
				obsah: $(OBJ).attr('rel'),
				time: now.getTime()
			}, function(result) {
				HeaderCT.hide();
				HeaderCT.dynamicBox[$(OBJ).attr('rel')] = true;
				$('#headerCzechTVMenu #' + boxID).html(result);
				$('#headerCzechTVMenu #' + boxID + ' .buttonClose').click(function(E) {
					HeaderCT.hide();
				});

				$('#headerCzechTVMenu #' + boxID + " *").click(function(E) {

					if ($(this).hasClass('submitButton')) {
						$('#headerCzechTVMenu #' + boxID + ' form').submit();
						return true;
					}

					E.stopPropagation(); E.preventDefault();
				});

				$('#headerCzechTVMenu #' + boxID + ' a,#headerCzechTVMenu #' + boxID + " a *").click(function(E) {

					if ($(this).attr('href')) {
						location.href = $(this).attr('href');
					}

					if ($(this).parent().attr('href')) {
						location.href = $(this).parent().attr('href');
					}

				});

				$('#' + boxID).slideDown(function(){
					$(OBJ).removeClass('arrowLoading');
				});
			});

			return true;
		}

		this.hide();
		$('#' + boxID).fadeIn(function() {
			$(OBJ).removeClass('arrowLoading');
		});

		$('#headerCzechTVLoader').hide();
	},
	/**
	* Prihlaseni
	*
	* @return void
	*/
	login: function() {
		if (!$('#headerCzechtTVInpLogin').val() || !$('#headerCzechtTVInpPass').val()) {
			$('#alertLocation').html('Nebylo zad&#225;no p&#345;ihla&#353;ovac&#237; jm&#233;no nebo heslo');
			alert($('#alertLocation').text());
			return true;
		}

		$.post('/services/multipass/login.php', {
			login: $('#headerCzechtTVInpLogin').val(),
			pass: $('#headerCzechtTVInpPass').val()
		}, function(result) {
			if (result.state==true) {
				window.location.reload();
				//location.reload(true);
			}
			else {
				$('#alertLocation').html('P&#345;ihl&#225;&#353;en&#237; se nezda&#345;ilo');
				alert($('#alertLocation').text());
			}
		}, 'json');
	},
	/**
	* Registrace
	*
	* @return void
	*/
	registration: function() {
		var registrationPrefix = { mp_login: '#headerCzechTVInpUser', mp_password: '#headerCzechtTVInpPassword', mp_passwordVerification: '#headerCzechtTVInpPassVerify', mp_email: '#headerCzechtTVInpEmail', mp_name: '#headerCzechTVInpName', mp_verification: '#headerCzechtTVInpCheck', mp_notice: '#headerCzechTVNotice' };

		$.post('/services/multipass/registration.php', {
			mp_login: $(registrationPrefix.mp_login).val(),
			mp_password: $(registrationPrefix.mp_password).val(),
			mp_passwordVerification: $(registrationPrefix.mp_passwordVerification).val(),
			mp_email: $(registrationPrefix.mp_email).val(),
			mp_name: $(registrationPrefix.mp_name).val(),
			mp_verification: $(registrationPrefix.mp_verification).val(),
			mp_notice: $(registrationPrefix.mp_notice).val()
		}, function(result) {

			$('#headerCzechTVRegistrationForm .errors').html('<p><strong>Vypl&#328;te spr&#225;vn&#277; n&#225;sleduj&#237;c&#237; polo&#383;ky:</strong></p>');
			$('#headerCzechTVRegistrationForm .errors').hide();

			if (result.validity) {
				$('#headerCzechTVRegistrationForm').html('<p class="title">Nyn&#237; je nutn&#233; aktivovat registraci,<br /><strong>na uveden&#253; e-mail jsme zaslali aktiva&#269;n&#237; k&#243;d a postup pro aktivaci.</strong><br /> D&#277;kujeme za p&#345;&#237;ze&#328;</p>');
			}
			else {

				if (result.errors) {
					for(var i in result.errors) {
						$('#headerCzechTVRegistrationForm .errors').append('<p>- ' + result.errors[i] + '</p>');
					}
					$('#headerCzechTVRegistrationForm .errors').show();
				}

				for(var i in result.values) {
					var Item = result.values[i];
					if (Item.validity == true) {
						continue;
					}

					$('#headerCzechTVRegistrationForm .errors').append('<p>- ' + Item.label + '</p>');
					$('#headerCzechTVRegistrationForm .errors').show();
				}
			}
		}, 'json');
	},
	/**
	* Odhlaseni
	*
	* @return void
	*/
	logout: function() {
		$.post('/services/multipass/logout.php', {
		}, function(result) {
			if (typeof(FB) != "undefined") {
				FB.getLoginStatus(function(response) {
					if (response.status == "connected") {
						FB.logout(function(res) {
							window.location.reload(true);
						});
					}
					else {
						window.location.reload(true);
					}
				});
				return true;
			}
			window.location.reload(true);
		}, 'json');
	},
	/**
	* Checknuti prihlasovaciho jmena
	*
	* @return void
	*/
	verifyLogin: function() {
		$.getJSON('/services/multipass/loginVerify.php', {
			user: $('#headerCzechTVInpUser').val()
		}, function(result) {
			if (result.state == false) {
				$('#alertLocation').html('Toto p&#345;ihla&#353;ovac&#237; jm&#233;no nelze pou&#382;&#237;t');
				alert($('#alertLocation').text());
			}
			else {
				$('#alertLocation').html('P&#345;ihla&#353;ovac&#237; jm&#233;no m&#367;&#382;ete bez obav pou&#382;&#237;t.');
				alert($('#alertLocation').text());
			}
		}, 'json');
	},
	/**
	* Zobrazi urcity block
	*
	* @param enum(other|loginForm|registrationForm) $type
	* @return void
	*/
	show: function(type) {
		switch(type) {
			case 'other':
				if ($('#headerCzechTVDropDownList').is(":visible")) {
					$('#headerCzechTV #headerCzechTVMenu .other').parent().removeClass('dropDownSwitchExpand');
					$('#headerCzechTVDropDownList').hide();
				}
				else {
					this.hide();
					$('#headerCzechTV #headerCzechTVMenu .other').parent().addClass('dropDownSwitchExpand');
					$('#headerCzechTVDropDownList').slideDown('fast');
				}

				break;
			case 'loginForm':
				if ($('#headerCzechTVLoginForm').is(":visible")) {
					this.hide();
				}
				else {
					this.hide();
					$('#headerCzechTVPersonal .hrefLogin').addClass('hrefLoginActive');
					$('#headerCzechTVLoginForm').slideDown('fast');
				}
				break;

			case 'registrationForm':
				if ($('#headerCzechTVRegistrationForm').is(":visible")) {
					this.hide();
				}
				else {
					this.hide();
					$('#headerCzechTVPersonal .hrefRegistration').addClass('hrefRegistrationActive');
					$('#headerCzechTVRegistrationForm').slideDown('fast');
				}
				break;

			case 'searchForm':
				if ($('#headerCzechTVSearchType').is(":visible")) {
					this.hide();
				}
				else {
					this.hide();
					$('#headerCzechTVSearchType').slideDown('fast');
				}
				break;

		}
	},
	/**
	* Schovani bloku
	*
	* @return void
	*/
	hide: function() {
		$('#headerCzechTVDropDownList').hide();
		$('#headerCzechTVDropDownList').parent().removeClass('dropDownSwitchExpand');

		$('#headerCzechTVSearchType').hide();

		$('#headerCzechTVLoginForm').hide();
		$('#headerCzechTVPersonal .hrefLogin').removeClass("hrefLoginActive");

		$('#headerCzechTVRegistrationForm').hide();
		$('#headerCzechTVRegistrationForm .errors').hide();
		$('#headerCzechTVPersonal .hrefRegistration').removeClass("hrefRegistrationActive");

		$('#headerCzechTVMenu .headerCzechTVDynamicBox').hide();
	}
}

/**
* Header
*
* @version 0.5.1
*/
$(document).ready(function() {
	//HeaderCT.handler();
	$('#CSSRELOAD').click(function(E) {
		E.stopPropagation();
		E.preventDefault();

		$('link').each(function(I, O) {

			if ($(O).attr('rel') != "stylesheet") {
				return true;
			}

			var J = $(O).clone(true);

			var href = $(J).attr('href');
				href = href.replace(/\?(.*)/, "");

			var version = new Date();
				version = "?_time=" + version.getTime();

				$(J).attr('href', href + version);
				$(O).remove();

				$('head').append(J);
		});
	});
});

