var Core = {

	controller: '',
	action: '',
	webHost: '',
	webView: '',
	webImg: '',
	dateTime: '',
	lang: '',

	init : function() {

		// Fancybox.
		$('.fancybox').fancybox({
			'titlePosition'	: 'inside'
		});
		
		$(".carousel").jCarouselLite({
		       btnNext: ".imageNext",
		      btnPrev: ".imagePrev"
		 });
		
		$('.imageNext').bind('mouseover', function(){
			$(this).addClass('imageNextOn')
		});
		
		$('.imageNext').bind('mouseleave', function(){
			$(this).removeClass('imageNextOn');
			$(this).addClass('imageNext');
		});
		
		$('.imagePrev').bind('mouseover', function(){
			$(this).addClass('imagePrevOn')
		});
		
		$('.imagePrev').bind('mouseleave', function(){
			$(this).removeClass('imagePrevOn');
			$(this).addClass('imagePrev');
		});
		
		$('.search_input').click(function() {
			  $(this).val('');
		});
		
		// hack
		var ci_max_width = 0;
		var ci_count = 0;
		$(".carousel img").each(function() {
			if ($(this).width() > ci_max_width) {
				ci_max_width = $(this).width();
			}
			ci_count++;
		})
		
		$(".carousel li").each(function() {
			$(this).width(ci_max_width + 20);
		})
		
		$(".carousel ul").width( (ci_max_width + 20) * ci_count );
		

		if(Core.lang == 'pl'){
			$('.search_input').focusout(function() {
				if($(this).val() == ''){
					$(this).val('szukaj...');
				}
			});
		}
		
		if(Core.lang == 'en'){
			$('.search_input').focusout(function() {
				if($(this).val() == ''){
					$(this).val('search...');
				}
			});
		}
		
		if(Core.lang == 'de'){
			$('.search_input').focusout(function() {
				if($(this).val() == ''){
					$(this).val('suche...');
				}
			});
		}
		
		/* System bannerowy na stronie głównej */
		$('#main_banner .item').each( function() {
		
			/* Jeśli to banner flashowy */
			if ($(this).hasClass('swf')) {
			
				// zamień hiperłączowy placeholder na swfa
				var link = $(this).find('a').attr('href');
				var source = $(this).find('a').html();
				
				var flashvars = {'link' : link};
				var params = {'wmode' : 'transparent', 'scale' : 'noscale', 'menu' : 'false'};
				var attributes = {};
				
				swfobject.embedSWF(source, $(this).find('a').attr('id'), "100%", "430", "7", "#FFFFFF", flashvars, params, attributes);
				
			}
			
		})
		
		/* System bannerowy na stronie głównej - przełącznik */
		$('#main_banner .pager a').click( function(e) {
			
			e.preventDefault();
			
			var pn = $(this).attr('href').substr(1);
			
			
			$('#main_banner .item.active').fadeOut('fast', function() {
				$(this).removeClass('active'); 
				$('#main_banner .item-'+pn).addClass('active');
				$('#main_banner .item-'+pn).fadeIn('fast');
			});
			
			$('#main_banner .pager a').each( function() { $(this).removeClass('active'); })
			
			$(this).addClass('active');
			
		})
		
		/* ustaw pozycję pagera */
		$(window).resize( function() {
			$('#main_banner .pager').each( function() {
				
				var width = $(this).width();
				var scr_width = $('body').width();
				var new_pos_left = scr_width/2 - width/2 + 375;
				//new_pos_left = Math.ceil(new_pos_left) + 'px';
				
				$(this).css('left', new_pos_left);
				$(this).css('top', '-3px');
				
			})
		})
		$(window).resize();
		
		/*var flashvars = {'plikxml' : 'baners.xml'};

		var params = {'wmode' : 'transparent', 'scale' : 'noscale', 'menu' : 'false'};
		

		var attributes = {};
		
		swfobject.embedSWF("app/views/flash/top.swf", "main_banner", "100%", "430", "7", "#FFFFFF", flashvars, params, attributes);*/

		
		
		
		
		var flashvars = {};
		
		var tekst = $('#top_text').attr('class');
		
		var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=' + tekst, 'salign' : 'lt'};

		
		var attributes = {};
		
		swfobject.embedSWF("app/views/flash/textbox.swf", "page_title", "600", "28", "10", "#FFFFFF", flashvars, params, attributes);
		
		
		
		var flashvars = {};
		
		switch(Core.lang){
			case 'pl':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Pliki do pobrania', 'salign' : 'lt'};
				break;
			case 'en':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Downloads', 'salign' : 'lt'};
				break;
			case 'de':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Downloads', 'salign' : 'lt'};
				break;
			default: 
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Pliki do pobrania', 'salign' : 'lt'};
			break;
		}
		
		var attributes = {};
		
		swfobject.embedSWF("app/views/flash/textbox.swf", "downloads_title", "280", "28", "7", "#FFFFFF", flashvars, params, attributes);
		
		
		var flashvars = {};
		
		switch(Core.lang){
			case 'pl':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Galeria fotografii', 'salign' : 'lt'};
				break;
			case 'en':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Gallery', 'salign' : 'lt'};
				break;
			case 'de':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Gallerie', 'salign' : 'lt'};
				break;
			default: 
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Galeria fotografii', 'salign' : 'lt'};
			break;
		}
		
		
		var attributes = {};
		
		swfobject.embedSWF("app/views/flash/textbox.swf", "galeries_title", "280", "28", "7", "#FFFFFF", flashvars, params, attributes);
		
		
		switch(Core.lang){
			case 'pl':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Aktualne oferty pracy', 'salign' : 'lt'};
				break;
			case 'en':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Job offers', 'salign' : 'lt'};
				break;
			case 'de':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Stellenangebote', 'salign' : 'lt'};
				break;
			default: 
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Aktualne oferty pracy', 'salign' : 'lt'};
			break;
		}
		
			
		
		swfobject.embedSWF("app/views/flash/textbox.swf", "offers_title", "280", "28", "7", "#FFFFFF", flashvars, params, attributes);
		
		
		
		switch(Core.lang){
			case 'pl':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Aplikuj na stanowisko', 'salign' : 'lt'};
				break;
			case 'en':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Apply for job', 'salign' : 'lt'};
				break;
			case 'de':
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Bewerben', 'salign' : 'lt'};
				break;
			default: 
				var params = {'wmode' : 'transparent', 'flashvars' : 'tekst=Aplikuj na stanowisko', 'salign' : 'lt'};
			break;
		}
		
		// dwukropki po pozycjach drufiego poziomu w menu bocznym
		$('.menuTextBlack.active').each(function() {
			if ($(this).hasClass('depth_2')) {
				$(this).find('a').html( $(this).find('a').html() + ':' );
			}
			
			if ($(this).hasClass('depth_3')) {
				var d3class = $(this).parent().attr('class');
				
				var regexp = new RegExp('(.+)(parent-)([0-9]+)');
				var match = regexp.exec(d3class);
				
				var parent_id = match[3];
				
				$(this).parent().parent().find('.id-'+parent_id).find('a').html(
					$(this).parent().parent().find('.id-'+parent_id).find('a').html()+':'
				);

			}
			
		})
				
		// fix: popraw wysokość strony
		if ($('#menu').height() > $('#center_index').height() ) {
			$('#center_index').height( $('#menu').height() + 10 );
		}
		
		swfobject.embedSWF("app/views/flash/textbox.swf", "aplikuj_title", "280", "28", "7", "#FFFFFF", flashvars, params, attributes);
		
		Core.hoverDownloads();
		
		Core.hoverItem();
		
		Core.hoverGallery();
		
		// Poleć znajomemu.
		Core.dialog('dlgRecommend', '#btnOpenRecommend');
		
		// Zapytaj eksperta
		
		Core.dialog('dlgAsk', '#btnOpenAsk');

		// Newsletter.
		Core.newsletter('dlgNewsletter', '#btnOpenNewsletter');
		Core.newsletter('dlgNewsletter', '#btnOpenNewsletter2');

		// Zakładki.
		Core.tabs();

		// Banery reklamowe.
		Core.banners();

		// Zmiana zdjęcia po wskazaniu kursorem.
		Core.hoverImage();

		// Drukowanie stron.
		Core.print();
	},

	print: function() {

		$('.btnPrint').click(function(){

			xferWindow = Core.openWindow(Core.webHost + 'print,index.html', 640, 280);
			xferWindow.opener = self;

			return false;
		});
	},
	
	hoverItem: function() {
		$('.downloadsContainer .title').mouseenter(function(){

			$('.arrow', this).attr(
				'src', 
				$('.arrow', this).attr('src').replace('arr_left_off.gif', 'arr_left_on.gif')
			);
			
			$(this).css("background","#a80057");
			
			$('.downloadItemName', this).css("color", "white");
			
			$('.fileExt', this).css("color", "#fd0083");
			
		}).mouseleave(function(){
			
			$('.arrow', this).attr(
					'src', 
					$('.arrow', this).attr('src').replace('arr_left_on.gif', 'arr_left_off.gif')
				);
			
			$(this).css("background","white");
			
			$('.downloadItemName', this).css("color", "#555555");
			$('.fileExt', this).css("color", "#9b9b9b");
			

		});
	},
	
	hoverImage: function() {
		$('img.hoverImage, input.hoverImage').mouseenter(function(){
			if ($(this).hasClass('active') === false) {
				$(this).attr('src', $(this).attr('src').replace('.gif', '_on.gif'));
				$(this).attr('src', $(this).attr('src').replace('.jpg', '_on.jpg'));
				$(this).attr('src', $(this).attr('src').replace('.png', '_on.png'));
			}
		}).mouseleave(function(){
			if ($(this).hasClass('active') === false) {
				$(this).attr('src', $(this).attr('src').replace('_on.gif', '.gif'));
				$(this).attr('src', $(this).attr('src').replace('_on.jpg', '.jpg'));
				$(this).attr('src', $(this).attr('src').replace('_on.png', '.png'));
			}
		});
	},
	
	hoverDownloads: function() {
		$('#downloadsHide').click( function(){
			if($('.downloadsContainer').css('display') == 'block'){
				$('#downloadsHide').attr('src', $('#downloadsHide').attr('src').replace('btn_schowaj_on.png', 'btn_pokaz_on.png'));
				$('.downloadsContainer').hide(300);				
			}else{
				$('#downloadsHide').attr('src', $('#downloadsHide').attr('src').replace('btn_pokaz_on.png', 'btn_schowaj_on.png'));
				$('.downloadsContainer').show(300);
			}
			return false;
		});
	},
	
	hoverGallery: function() {
		$('#galleryHide').click( function(){
			if($('#galleryContainer').css('display') == 'block'){
				$('#galleryHide').attr('src', $('#galleryHide').attr('src').replace('btn_schowaj_on.png', 'btn_pokaz_on.png'));
				$('#galleryContainer').hide(300);				
			}else{
				$('#galleryHide').attr('src', $('#galleryHide').attr('src').replace('btn_pokaz_on.png', 'btn_schowaj_on.png'));
				$('#galleryContainer').show(300);
			}
			return false;
		});
	},

	inputDescription: function(formName, elementName, description) {

		var form = $(formName), element = $(elementName);

		if (element.val() === '')
			element.val(description);

		element.focus(function(){

			if ($(this).val() === description)
				$(this).val('');

		}).blur(function(){

			if ($(this).val() === '')
				$(this).val(description);

		});

		form.submit(function(){

			if (element.val() === description)
				element.val('');

		});

	},

	banners: function() {

		$('div.advImageContent div.advImagePlaceholder').each(function(){

			swfobject.embedSWF(
				$(this).children('.path').text(), 'b' +
				$(this).attr('id').substr(1),
				$(this).children('.width').text(),
				$(this).children('.height').text(), '9.0.0', '', { }, { wmode: 'opaque' }, { }
			);

		});

		if ($.cookie('advTopLayer') !== '1') {

			var advTopLayer = $('#advTopLayer'),
				advImagePlaceholder = advTopLayer.find('.advImagePlaceholder');

			if (advTopLayer.length > 0 && advImagePlaceholder.length > 0) {

				$.fancybox({
					autoScale: false,
					autoDimensions: true,
					enableEscapeButton: false,
					hideOnOverlayClick: false,
					href: advSwf.children('.path').text(),
					margin: 0,
					overlayOpacity: 0,
					padding: 0,
					scrolling: 'no',
					swf: { wmode: 'opaque' },
					titleShow: false,
					type: 'swf',
					transitionIn: 'none',
					transitionOut: 'none',

					onStart: function() {
						$.cookie('advTopLayer', 1);
					}
				});

			}
			else if (advTopLayer.length > 0) {

				$.fancybox({
					autoScale: false,
					autoDimensions: true,
					enableEscapeButton: false,
					hideOnOverlayClick: false,
					href: '#advTopLayer',
					margin: 0,
					overlayOpacity: 0,
					padding: 0,
					scrolling: 'no',
					titleShow: false,
					transitionIn: 'none',
					transitionOut: 'none',

					onStart: function() {
						$.cookie('advTopLayer', 1);
					}
				});
			}
		}

	},

	dialog: function(dialogName, buttonOpenName) {

		var dialog = $('#' + dialogName),
			form = dialog.find('form'),
			messages = dialog.find('.messageList'),
			inputs = dialog.find('input.text, textarea');

		dialog.submit(function(){

			// Komunikat lub animacja ładowania.
			messages.html('<p>Proszę czekać...</p>');
			messages.show();

			// Przeskaluj okno.
			$.fancybox.resize();

			// Wyślij żądanie.
			$.post(form.attr('action'), form.serialize(), function(data){

				if ('OK' === data.status) {
					inputs.not('input[type="checkbox"]').val('');
					inputs.removeAttr('checked');
				}
				else if ('ERROR' === data.status) {
					$.each(data.fields, function(k, v){
						dialog.find('[id*=' + k + ']').addClass('error');
					});
				}

				
				/*
				for (var i in data.fields) {
					$('#r_'+data.fields[i]).css("color","red");
				}

				messages.html(html);
				*/
				
				var html = '';

				for (var i in data.messages) {
					html += '<p class="' + data.status + '">' + data.messages[i] + '</p>';
				}

				messages.html(html);

				// Przeskaluj okno.
				$.fancybox.resize();

			}, 'json');

			return false;
		});

		inputs.blur(function(){
			$(this).removeClass('error');
		});

		$(buttonOpenName).fancybox({
			href: '#' + dialogName,
			titleShow: false,
			showCloseButton : false, 
			margin: 0,
			padding: 0,

			onStart: function() {

				// Usuń poprzednio wpisane wartości.
				inputs.not('input[type="checkbox"]').val('');
				inputs.removeAttr('checked');

				// Usuń poprzednie komunikaty.
				messages.html('');
				messages.hide();
			}
		});

		form.find('.btnClose').click(function(){
			$.fancybox.close();

			return false;
		});
	},

	newsletter: function(dialogName, buttonOpenName) {

		Core.dialog(dialogName, buttonOpenName);

		var dialog = $('#' + dialogName),
			form = dialog.find('form'),
			messages = dialog.find('.messageList'),
			inputs = dialog.find('input.text, textarea');

		$('#btnSignout').click(function(){

			// Komunikat lub animacja ładowania.
			messages.html('<p>Proszę czekać...</p>');
			messages.show();

			// Przeskaluj okno.
			$.fancybox.resize();

			// Wyślij żądanie.
			$.post(Core.webHost + 'newsletters_ajax,signout.html', form.serialize(), function(data){

				if ('OK' === data.status) {
					inputs.not('input[type="checkbox"]').val('');
					inputs.removeAttr('checked');
				}

				var html = '';

				for (var i in data.messages) {
					html += '<p class="' + data.status + '">' + data.messages[i] + '</p>';
				}

				messages.html(html);

				// Przeskaluj okno.
				$.fancybox.resize();

			}, 'json');

			return false;
		});

		$(buttonOpenName).fancybox({
			href: '#' + dialogName,
			titleShow: false,
			showCloseButton : false, 
			margin: 0,
			padding: 0,

			onStart: function() {

				// Usuń poprzednio wpisane wartości.
				inputs.not('input[type="checkbox"]').val('');
				inputs.removeAttr('checked');

				// Usuń poprzednie komunikaty.
				messages.html('');
				messages.hide();
			}
		});

		form.find('.btnClose').click(function(){
			$.fancybox.close();

			return false;
		});
	},

	tabs: function () {
		// Zakładki.
		$('.buttons.ajax a').click(function() {

			// Pobierz zapamiętane zakładki.
			var activeTabs = $.cookie('ACTIVE_TABS');

			if (activeTabs)
				activeTabs = activeTabs.split(',');
			else
				activeTabs = new Array();

			var id = activeTabs.indexOf($(this).parent().children('a.active').attr('href'));

			if (typeof id != 'undefined')
				activeTabs.splice(id, 1);

			// Zmień zakładki.
			$(this).parent().next('.tabs').children('div.tab').hide();
			$($(this).attr('href')).show();

			$(this).parent().children('a').removeClass('active');
			$(this).addClass('active');

			// Zapamiętaj aktywane zakładki.
			activeTabs.push($(this).attr('href'));

			$.cookie('ACTIVE_TABS', activeTabs.join(','));

			return false;
		});

		// Przywróć zakładki.
		var activeTabs = $.cookie('ACTIVE_TABS');

		if (activeTabs)
			activeTabs = activeTabs.split(',');
		else
			activeTabs = new Array();

		for (var i in activeTabs) {

			var button = $('.buttons.ajax a[href="' + activeTabs[i] + '"]');

			button.parent().next('.tabs').children('div.tab').hide();
			$(button.attr('href')).show();

			button.parent().children('a').removeClass('active');
			button.addClass('active');
		}
	},

	openWindow : function( href, width, height ) {
		return window.open(href, 'window', 'width=' + (width | 650) + ', height=' + (height | 650) +
			', menubar=no, toolbar=no, location=no, scrollbars=yes, resizable=no, status=no');
	}
}

$(document).ready(function() {

	// Zamień pierwszą literę oraz każdą przed "_" na wielkie.
	var controller = Core.controller.replace(/(^|_)([a-z])/g, function(m, p1, p2) {
		return p1 + p2.toUpperCase();
	});

	Core.init();

	if (window[controller] != undefined) {

		if (typeof window[controller]['init'] == 'function') {
			window[controller]['init']();
		}

		if (typeof window[controller][Core.action] == 'function') {
			window[controller][Core.action]();
		}
	}
});

