/**
 *	PKS Bialystok
 *	Autor: Marek Szymczuk <marek.szymczuk at gmail.com>
 *	================================================================
 */

var pks = {
	// Okresla, czy przegladarka uzytkownika to IE6.
	isIE6: ($.browser.msie && parseInt($.browser.version) == 6 && !window['XMLHttpRequest']),

	//
	// Inicjuje wszystkie funkcje strony.
	//
	init: function() {
		pks.newsletterBox();
// 		pks.initLogoSwf();
		pks.initSearch();
		pks.initTabs();
		pks.initIEFixes();
		pks.initSidebar();
		pks.initGallery();
	},

	//
	// Pokazuje obrazki w popupie.
	//
	initGallery: function() {
		$('a[href$="jpg"], a.fancybox').fancybox();
	},


	initLogoSwf: function()
	{
		$('#header h1').attr('id','jsLogo');
		var so = new SWFObject("gfx/logo.swf", 'logo', "465", "95", '9', '#ffffff');
		so.write("jsLogo");
		if($('#jsLogo embed').is('embed') || $('#header object').is('object'))
		{
			$('#jsLogo').css('padding-top', '5px');
			$('#jsLogo').css('padding-bottom', '5px');
		}
		
	},

	//
	// Rozciaga pasek boczny do konca kontenera z trescia.
	// Napraw mnie.
	//
	initSidebar: function() {
		// Kontener.
		var container = $('#page .pageInner');
		// Pasek boczny.
		var sidebar = container.find('.sidebar > .sidebarInner');
		// Obrazek podstrony.
		var pageImage = container.find('#pageImage');

		// Przed obliczeniem ewentualnej wysokosci paska bocznego, ustawiamy na
		// sztywno szerokosc kilku elementow podstrony.
		/*container.children('p:not(.intro), h3, .news, .contactBox').css('width',
			container.width() - (
				container.find('.sidebar').width() + parseInt(container.find('.sidebar').css('padding-left'))
			) + 'px'
		);*/

		if (pageImage.height() == null) {
			// Poniewaz nie ma glownego obrazka dla danej podstrony, wysokosc paska
			// bocznego bedzie rowna wysokosci kontenera, pomniejszonego o padding gorny.
			sidebar.height(container.height() - parseInt(container.find('.sidebar').css('padding-top')));
			sidebar.height(container.height() - parseInt(container.find('.sidebar').css('padding-top')));
		}
		else {
			// Powiekszamy wysokosc paska bocznego o roznice wysokosci kontenera i
			// obrazka glownego podstrony,
			sidebar.height(container.height() - pageImage.height());
			sidebar.height(container.height() - pageImage.height());
		}
	},

	//
	// Poprawia dzialanie strony w Internet Explorer.
	// 1. Dodaje obsluge :hover dla niestandardowych elementow pod IE6.
	//
	initIEFixes: function() {
		//
		// 1. Obsluga :hover.
		//
		if (pks.isIE6) {
			// Glowne menu nawigacyjne.
			$('#nav > li').hover(
				function() { $(this).addClass('iehover'); },
				function() { $(this).removeClass('iehover'); }
			);

			// Zakladki na stronie glownej.
			$('.searchWrap .tabs li').hover(
				function() {
					if ($(this).attr('class') != 'selected') {
						$(this).attr('class', 'iehover');
					}
				},
				function() {
					if ($(this).attr('class') != 'selected') {
						$(this).attr('class', '');
					}
				}
			);
		}
	},

	//
	// Dodaje funkcje do wyszukiwarki polaczen i tabliczek.
	//
	initSearch: function() {
		$('.searchForm input[name="from"], .searchForm input[name="to"], .connectionSearch input[name="from"], .connectionSearch input[name="to"], .boardSearch input[name="from"]').each(function() {
			// Dodajemy obsluge podpowiadania dla pol z nazwami miast.
			$(this).autocomplete('miejscowosci.php', {autoFill: true, highlight: false, delay: 200});

			// Przy focusie na danym polu zaznaczamy caly tekst.
			$(this).focus(function() {
				this.select();
			});
		});
	},

	//
	// Dodaje obsluge ladowania tresci do zakladek strony glownej
	// oraz do pola uwag w menu nawigacyjnym
	//
	initTabs: function() {
		// Zakladki.
		$('.searchWrap .tabs li').click(function() {
			// Id danej zakladki.
			var tabId = $(this).attr('id').match(/[^_]+/);
			
			if(tabId == 'tab01')
			{
				document.location.href = document.location.href;
				return true;
			}

			// Po kliknieciu w zakladke ladujemy dany plik na podstawie jej
			// identyfikatora, po czym wywolujemy funkcje inicjujace od wyszukiwarki.
			$(this).parent().parent().find('.tabContentWrap').load('content/home/' + tabId + '.html', null, function() { pks.initSearch(); });

			// Usuwamy aktywnosc z poprzednio zaznaczonej zakladki, a
			// nastepnie ustawiamy jako aktywna aktualna zakladke.
			$(this).parent().find('li.selected').attr('class', '');
			$(this).attr('class', 'selected');

			return false;
		});

		// Po kliknieciu w pozycje menu 'Zglos uwagi' pokazujemy jej zawartosc.
		$('#yourOpinion').click(function() {
			$(this).attr('class', 'selected');
		});

		// Dodajemy obsluge ukrywania zawartosci.
		pks._opinionTab();

		$('#yourOpinion form.opinionForm').submit(function() {
			var form = $(this);
			var action = $(form).attr('action');

			if (form.find('#opinion').val() == '') {
				// Jezeli nie wpisano opinii, zatrzymujemy dzialanie skryptu
				// oraz ustawiamy na czerwono kolor tekstu etykiety i ramke
				// pola opinii.
				var invalidInput = form.find('#opinion');

				invalidInput.prev('label').css('color', 'red');
				invalidInput.css('border-color', 'red');
			}
			else {
				// Wysylamy zadanie do skryptu i ustawiamy zwrocony tekst.
				$.ajax({type: 'POST', url: action, cache: false, data: $(form).serialize(),
					error: function() {
						$('#yourOpinion .content').html('<div class="inner"><p class="msg">Wyst�0�2pi�0�0 b�0�0�0�2d podczas wysy�0�0ania opinii. Spr��buj ponownie za kilka minut.<a href="#" class="close">Zamknij okno</a></p></div>');
						pks._opinionTab();
					},
					success: function(result) {
						var resultJson = eval('(' + result + ')');

						$('#yourOpinion .content').html('<div class="inner"><p class="msg">' + resultJson[1] + ' <a href="#" class="close">Zamknij okno</a></p></div>');
						pks._opinionTab();
					}
				});
			}

			return false;
		});
	},
	
	
	newsletterBox: function()
	{
		if(!$('#newsletterBoxWrapper').is('div'))
			return false;
			
		var strToAdd = '<div id="newsletterBoxForm"><div class="newsletterBoxBottom"><div class="newsletterBoxContent"><p class="zamknij"><a class="jsCloseNsl" href="">Zamknij</a></p><div id="newsletterLoadedContent">laduje...</div>';
	// 	strToAdd += '<iframe src="?BiuletynInformacyjny" frameborder="0"></iframe>';
		strToAdd += '<img src="gfx/nsl-hr.gif" class="nsl-hr" alt=""></div></div></div>';
		
		
		var biuletyn = true;
		var reklama = false;
		
		if(!$('#home').is('body'))
		{
			biuletyn = false;
			reklama = true;
		}
				
				
		$('#content').append(strToAdd);
		
	 	$('#newsletterBoxForm').hide();
// 		
		$('.jsCloseNsl').click(function()
		{
			$('#newsletterBoxForm').hide();
			return false;
		}
		);
		
		
		$('#newsletterBoxLink').click(
			function()
			{
				var strReklamaReq = '&nsl-reklama=0';
				if(reklama)
					strReklamaReq = '&nsl-reklama=1';
					
				$('#newsletterLoadedContent').html('<p>�0�9aduj�0�1</p>');
				$('#newsletterBoxForm').toggle();
				$.ajax({type: 'POST', url: 'index.php?BiuletynInformacyjny&ajaxpks=1'+strReklamaReq, cache: false, dataType: "html",
					data: { aj: 1 },
					error: function(xmlhttp, errorText, errorThrown) {
						$('#newsletterLoadedContent').html('<p>Wyst�0�2pi�0�0 b�0�0�0�2d.</p>');
					},
					success: function(result) {

						pks.loadNslContentBox(result, strReklamaReq);
						
					}
				});
// 				$('#newsletterLoadedContent').load(
// 					'index.php?BiuletynInformacyjny&ajax=1',
// 					{
// 						BiuletynInformacyjny: 1,
// 						ajax: 1
// 					},
// 					function(rcvData)
// 					{
// 						alert('!');
// 						
// 						
// 					}
// 				);
				return false;
			}
		);
	
	},
	
	
	loadNslContentBox: function (result, strReklamaReq)
	{
		$('#newsletterLoadedContent').html(result);
		var $form = $('#newsletterLoadedContent form');
						
		$form.submit(
			function()
			{
				var dataToSend = $form.serialize();
				
				dataToSend += '&ajaxpks=1'+strReklamaReq;
				$.ajax({type: 'GET', url: $form.attr('action'), cache: false, dataType: "html",
					data: dataToSend,
					error: function(xmlhttp, errorText, errorThrown) {
// 						alert(xmlhttp);
// 						alert($(xmlhttp).serialize());
						$('#newsletterLoadedContent').html('<p>Wyst�0�2pi�0�0 b�0�0�0�2d podczas �0�0adowania.</p>');
					},
					success: function(result) {

						pks.loadNslContentBox(result, strReklamaReq);
						
						
						
					}
				});
				return false;				
			}
		);
	},

	//
	// Dodaje obsluge ukrywania zawartosci 'Zglos uwagi'.
	//
	_opinionTab: function() {
		$('#yourOpinion .close').click(function() {
			$('#yourOpinion').attr('class', '');
			return false;
		});
	},

	//
	// Osadza flasha na stronie.
	//
	embedFlash: function(banner, id, width, height) {
		$('#' + id).replaceWith('<!--[if !IE]>--><object type="application/x-shockwave-flash" data="' + banner + '" width="' + width + '" height="' + height + '"><!--<![endif]--><!--[if IE]><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="' + width + '" height="' + height + '"><param name="movie" value="' + banner + '" /><!--><!--dgx--><param name="loop" value="true" /><param name="menu" value="false" /><param name="wmode" value="transparent" /></object><!-- <![endif]-->');
	},

	//
	// Mini rotator banner��w ;-).
	//
	banner: function() {
		var banners = [
			"static/images/banners/900x120.swf?clickTAG=http://www.pks.bialystok.pl/v2/reklama_strony.html",
			"static/images/banners/wsm-pks_v3.swf"
		];

		pks.embedFlash(banners[Math.floor(Math.random()*banners.length)], "bannerMain", "900", "120");
	}
};

$(document).ready(function() {
	pks.init();
});

