/**
 * @author gacek
 */

(function($) {
	$.fn.returnKey = function(funkcja)
	{
		return this.each(function()
		{
			$(this).keypress(function(e)
			{
				if(e.which == 13) //jesli enter
				{
					e.preventDefault();
					funkcja.apply(this);
				}
			});
		});
	};
})(jQuery);

 var commonObject = {
 	kropka: 'kropka_blue.png',
 	/*
 	 *  Obsluga pierwszego ekranu logowania po wczytaniu strony
 	 */
	setLoaderLogin: function(){
		$('<div id="login_loader"></div>').hide()	//login loader - div pojawia sie gdy ajaxStart
		.appendTo('div.moduletable_logowanie')
		.bind('ajaxStart', function(){
			$(this).show();
		})
		.bind('ajaxComplete', function(){
			$(this).hide();							//login loader - div znika gdy ajaxComplete
		});
		$('<img src="./images/ajax-loader-login.gif" alt="Loading" />').css({		// GIF ajax loader
			'margin-top': '25px'
		}).appendTo('#login_loader');
		$('<div id="login_alert"><div id="alert_text">Niepoprawne dane</div></div>').appendTo('div.moduletable_logowanie').hide();
	},	
	
	/*
	 *  przypisanie zdarzen ajax dla logowania
	 */
	setLoginAjax: function(){
		commonObject.setLoginAjaxVariable('#login_ok_button', 'login');
	},
	
	/*
	 *  obsluga logowania zalezna od sytuacji na stronie - zaloguj/wyloguj
	 *  
	 *  idToChange - identyfikator elementu, ktorego zawartosc (innerHTML)
	 *  ulegnie zmianie
	 *  
	 *  logInOut - akcja uzytkownika - zaloguj/wyloguj
	 */
	
	setLoginAjaxVariable: function(idToChange, logInOut)
	{
		commonObject.setLoaderLogin();
		
		$('form[name=' + logInOut + ']').submit(function(){
			return false;
		})
		
		var whichDiv = logInOut == 'login' ? '#login_ok' : '#logout_button_div';
		
		$('form[name=' + logInOut + '] input[type=submit]')
		.click(function(){	
			var jsonStr = '';			
			var tabArr = new Array();
			$('form[name=' + logInOut + '] input[name=return]').val('indexLogin.php');
			$('form[name=' + logInOut + '] input').each(function(){
				tabArr.push($(this).attr('name') + '=' + $(this).val() + '&');
			});
			for (var i = 0; i < tabArr.length; i ++)
			{
				jsonStr += tabArr[i];
			}
			$.post('./indexLogin.php', jsonStr, function(data){
				var setText = data.replace(/\n/g,'').replace(/\r/g, '');
				
				if (setText.indexOf('alert') != -1) {	//gdy blad logowania
					
					//$('div.moduletable_logowanie #login_div').html(xText);
					$('#login_alert').fadeIn('slow');
					setTimeout("$('div#login_alert').fadeOut('slow')", 2500);
					
				}
				else {
					$('div.moduletable_logowanie').html(setText);
					if (logInOut == 'logout') {
						commonObject.setLoginAjaxVariable('#login_ok_button', 'login');
						$('div#login_div img').ifixpng();
					}
					if (logInOut == 'login') {
						commonObject.setLoginAjaxVariable('#login_ok_button1', 'logout');
					}
				}
			});
		});
	},	
	
	/*
	 *  Przypisuje obrazy do wyswietlania pod menu z lewej strony
	 *  
	 *  divId - identyfikator elementu, w ktorym umieszczony zostanie pokaz
	 *  slajdow
	 *  
	 *  imSrc - tablica zawierajaca sciezki do obrazow
	 */	
	setPicturesToSlideshow: function(divId, imSrc)
	{
		var divIdToAppend = divId;					//id elementu do ktorego beda dodane zdjecia
		var imgString = '';
		if (!imSrc || imSrc == null){return;}		//wyjscie, gdy nie ma...
		if (!divId || divId == null)
		{
			divIdToAppend = '#body_middle_inner';	//jesli nie ma divId, dalacz do id="body_middle_inner"
		}
		for (var i = 0; i < imSrc.length; i++)
		{
			imgString += '<img src="' + imSrc[i] + '" id="img_add' + i + '" alt="" />'
		}
		$(divIdToAppend).append(imgString); //efekty przejscia, dalaczane z biblioteki jquery.cycle.all.min.js
		$(divId).cycle({
			fx: 'fade',
			pause: 1
		});
	},
	
	setAnimatedTopMenu: function(){
		$('#mainlevel-nav li a')
		.mouseover(function(){
			$('#mainlevel-nav li a').stop().animate({
				'color': '#ccc'
			}, 200);
			$(this).stop().css({
				color: '#fff'
			});
		})
		.mouseout(function(){
			$('#mainlevel-nav li a').stop().animate({
				'color': '#fff'
			}, 200);
		});
	},
	
	/*
	 *  Usuwa zwykłe linki z menu i ustawia odpowiednie zachowania - ladowanie tresci do ukrytej
	 *  ramki
	 */
	setMenuLinksAjax: function(){
		//commonObject.setAnimatedTopMenu();
		//// Tworzenie ramki /////
		$('<iframe id="hiddenFrame" name="hiddenFrame" />').hide().appendTo('body');
		//// Modyfikacja linkow w menu ////
		$('#mainlevel-nav li a:not(:contains(sklep))')
		.each(function(){
			var locationHref = $(this).attr('href');
			$(this).removeAttr('href')
			.click(function(){
				commonObject.setKropka('kropka_blue_1.gif');
				$('#hiddenFrame').attr('src', locationHref);
			});
		});
		
		$('#mainlevel-nav li a:contains(sklep)').attr('target', '_blank');
	},
	
	/*
	 *  Usuwa linki i zastepuje je akcja ladowania tresci do ukrytej ramki
	 *  
	 *  linkId - identyfikator linku - podawany w notacji css3
	 */
	setClickAjax: function(linkId, imageDot){
		commonObject.kropka = imageDot;
		$(linkId).each(function(){
			var locationHref = $(this).attr('href');
			$(this).removeAttr('href')
			.click(function(){
				$('#kropka img').attr('src', './templates/dermapol/images/' + commonObject.kropka);
				$('#hiddenFrame').attr('src', locationHref);
			})
			.mouseover(function(){
				$(this).css({
					cursor: 'pointer'
				});
			});
		})
	},
	
	/*
	 *  Wyciaga formularz jejestracyjny
	 */
	getRegisterForm: function()
	{
		if ($('iframe#hiddenFrame') && $('iframe#hiddenFrame').size() != 0) {
			$('#all_right').cycle('pause');
			$('<div id="register_div"><div id="register_inner"><form id="register_admin_form" action="index.php" method="post" name="adminForm"/></div></div>').appendTo('body');
			$('#register_div').css({
				height: $(document).height()
			});
			$('iframe#hiddenFrame').contents().find('form[name=adminForm] div fieldset:first, form[name=adminForm] div fieldset:has(div#company_div), form[name=adminForm] input[type=hidden]').not('script, noscript').each(function(){
				$(this).clone().appendTo('form#register_admin_form');
			});
			$('<fieldset id="register_terms_fieldset"><legend>Zarejestruj!</legend><br /><label for="agreed_field" id="agreed_field_label">Akceptacja <a href="javascript:void window.open(\'http://test.dermapol.pl/index2.php?option=com_virtuemart&page=shop.tos&pop=1\', \'win2\', \'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=500,directories=no,location=no\');">regulaminu</a></label><div class="formField" id="agreed_input" style="margin-left:10px;"><input type="checkbox" id="agreed_field" name="agreed" value="1" class="inputbox" /><br /></div><br style="clear:both;" /></fieldset><input id="submit_reg_form" type="submit" value="OK" class="button" />').appendTo('form#register_admin_form');
			$('<button id="close_reg_form">Anuluj</button>').appendTo('#register_inner');
			
			$('#close_reg_form').click(function(){
				
				$('#register_div').fadeOut(1000, function(){
					$(this).remove();
					$('#all_right').cycle('resume');
				});
			});
			var objectReg = {
				success: function(responseText, statusText){
					if (responseText.indexOf('Ta nazwa u') != -1)
					{
						var alertString = $('#userNotAvailable').text();
						jAlert(alertString, 'Niepoprawny login, nazwa ju&#380; zaj&#281;ta...');
						return false;
					}
					if (responseText.indexOf('Failure') != -1)
					{
						var alertString = $('#userNotAvailable').text();
						jAlert(alertString, 'Niepowodzenie! Rejestracja nieudana. Spr&#243;buj ponownie...');
						return false;
					}
					if (responseText.indexOf('Podaj poprawnie Nazwa u') != -1)
					{
						var alertString = $('#userNotAvailable').text();
						jAlert('Niepoprawny login, nazwa musi zawiera&#263; przynajmniej 2 znaki z zakresu [a-z][A-Z][0-9]', 'Niepoprawny login');
						return false;
					}
					if (responseText.indexOf('z takim adresem email jest ju') != -1)
					{
						var alertString = $('#emailNotAvailable').text();
						jAlert(alertString, 'Niepoprawny adres email');
						return false;
					}
					var alertString = $('#registrationSuccess').text();
					jConfirm(alertString, 'Sukces!', function(r){
						$('#register_div').fadeOut(1000, function(){
							$(this).remove();
							$('#all_right').cycle('resume');
						});
					});
				},
				beforeSubmit: function(){
					$('#register_admin_form input[type=text], #register_admin_form input[type=password]').css({
						border: '1px solid #aaa'
					});
					$('<div id="userNotAvailable" />').load('./lib/html/uzytkownikZajety.html').hide().appendTo('#register_div');
					$('<div id="emailNotAvailable" />').load('./lib/html/emailZajety.html').hide().appendTo('#register_div');
					$('<div id="registrationSuccess" />').load('./lib/html/sukcesRejestracji.html').hide().appendTo('#register_div');
					var idRequired = new Array('#email_field', '#username_field', '#password_field', '#password2_field', '#first_name_field', '#last_name_field', '#address_1_field', '#city_field', '#zip_field', '#phone_1_field', '#agreed_field');
					var valid = 0;
					for (var i= 0; i< idRequired.length; i++)
					{
						if ($(idRequired[i]).val() == '')
						{
							$(idRequired[i]).css({
								border: '2px solid #ed145b'
							});
							valid ++;
						}
					}
					if ($('#password_field').val() != $('#password2_field').val())
					{
						$('#password_field, #password2_field').css({
							border: '2px solid #ed145b'
						});
						valid ++;
					}
					var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
					if (pattern.test($('#email_field').val()) == false)
					{
						$('#email_field').css({
							border: '2px solid #ed145b'
						});
						valid ++;
					}
					if (valid != 0)
					{
						return false;
					}
					if ($('#agreed_field:checked').val() == null)
					{
						jAlert('Zaznacz pole "Akceptacja regulaminu"!', 'Akceptacja');
						return false;
					}
					return true;
				}
			}
			$('form#register_admin_form input').returnKey(function(){
				jAlert('Aby wys&#322;a&#263; formularz, kliknij "OK"', 'Kliknij "OK"');
			});
			$('form#register_admin_form').submit(function(){
				return false;
			}).ajaxForm(objectReg);
			
		}
	},
	getKontaktForm: function()
	{
		$('#kontakt_form').submit(function(){
			return false;
		});
		
		$('#kontakt_form input, #kontakt_form textarea').returnKey(function(){
			jAlert('Aby wys&#322;a&#263; wiadomo&#347;&#263;, kliknij "OK"', 'Kliknij "OK"');
		});

		$('#kontakt_form input[type=submit]')
		.click(function(e){	
			var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
			if (pattern.test($('#adres').val()) == false)
			{
				$('#adres').css({
					border: '2px solid #ed145b'
				});
				return false;
			}
			var jsonStr1 = '';			
			var tabArr1 = new Array();
			$('#kontakt_form input, #kontakt_form textarea').each(function(){
				tabArr1.push($(this).attr('name') + '=' + $(this).val() + '&');
			});
			for (var i = 0; i < tabArr1.length; i ++)
			{
				jsonStr1 += tabArr1[i];
			}
			
			$.post('./index.php?option=com_forme&fid=1&Itemid=46', jsonStr1, function(data){
				jAlert('Zapytanie dostarczono. Zostanie rozpatrzone przez naszych konsultant&#243;w.','Formularz dostarczono');
				$('#kontakt_form input[type=text], #kontakt_form textarea').val('');
				$('#adres').css({
					border: '1px solid #9a9b9d'
				});
			});
			e.preventDefault();
		});
	},
	
	changeCustomContentFromIFrame: function(divFrom, divTo)
	{
		$(divTo).html($('iframe').contents().find(divFrom).html());
	},
	/*
	 *  Wyciaga zawartosc z iframe
	 */
	changeDivContentFromIFrame: function()
	{
		$('#all').html($('iframe').contents().find('#all').html());
	},
	
	/*
	 *  Zakladka o nas - najezdzanie na loga submarek
	 */
	setONasMouseOver: function(){
		$('<div id="img_right"></div>').hide().appendTo('#all2');
		$('<img id="o_nas_health" src="images/o_nas/480x320_health.jpg" alt="Best4health" />').hide().appendTo('#img_right');
		$('<img id="o_nas_sport" src="images/o_nas/480x320_sport.jpg" alt="Best4health" />').hide().appendTo('#img_right');
		$('<img id="o_nas_work" src="images/o_nas/480x320_work.jpg" alt="Best4health" />').hide().appendTo('#img_right');
		
		$('#start_health').mouseover(function(){
			$('#o_nas_health').show();
			$('#img_right').show();
			//$('.moduletable_logowanie').hide();
		})
		.mouseout(function(){
			$('#img_right').hide();
			$('#o_nas_health').hide();
			//$('.moduletable_logowanie').show();
		});
		
		$('#start_sport').mouseover(function(){
			$('#o_nas_sport').show();
			$('#img_right').show();
			//$('.moduletable_logowanie').hide();
		})
		.mouseout(function(){
			$('#img_right').hide();
			$('#o_nas_sport').hide();
			//$('.moduletable_logowanie').show();
		});
		
		$('#start_work').mouseover(function(){
			$('#o_nas_work').show();
			$('#img_right').show();
			//$('.moduletable_logowanie').hide();
		})
		.mouseout(function(){
			$('#img_right').hide();
			$('#o_nas_work').hide();
			//$('.moduletable_logowanie').show();
		});
	},
	
	/*
	 *  Pokazuje lub ukrywa element
	 *  
	 *  show - parametr typu bool - true - pokaz modul logowania, false - schowaj modul logowania,
	 *  
	 *  param - parametr identyfikujacy obiekt/obiekty, notacja css3
	 */
	showHideLogin: function(show, param)
	{
		show == true ? $(param).show() : $(param).hide();
	},
	
	/*
	 *  animuje zadany obiekt wedlug zadanej animacji
	 *  
	 *  objectId - identyfikator obiektu/ow - notacja css3
	 *  
	 */
	animObject: function(objectId)
	{
		$(objectId + ':hidden').show().css({
			'filter': 'alpha(opacity = 0)',
			'opacity': '0',
			'-moz-opacity': '0',
			'-khtml-opacity': '0'
		}).fadeTo(1000, 0.7);
	},
	
	/*
	 *  Sprawdza, czy odpowiednio wpisano haslo i login w polach na stronie "wiecej opcji logowania"
	 */
	setFormJavaScript: function()
	{
		$('form#com_form_login').submit(function(){
			if ($('#login_module_usr').val() == '' || $('#login_module_pas').val() == '') {
				if ($('#login_module_usr').val() == '') {
					$('#wrong_username').show().css({
						color: 'red'
					}).text('Nie podano!');
				}
				if ($('#login_module_pas').val() == '') {
					$('#wrong_password').show().css({
						color: 'red'
					}).text('Nie podano!');
				}
				$('#wrong_password:visible, #wrong_username:visible').fadeOut(2000);
				return false;
			}
			return true;
		});
	},
	
	setFormJavaScriptRemind: function()
	{
		$('form#sendReminder').submit(function(){
			if ($('#send_username').val() == '' || $('#send_email').val() == '') {
				if ($('#send_username').val() == '') {
					$('#wrong_username').show().css({
						color: 'red'
					}).text('Nie podano!');
				}
				if ($('#send_email').val() == '') {
					$('#wrong_email').show().css({
						color: 'red'
					}).text('Nie podano!');
				}
				$('#wrong_email:visible, #wrong_username:visible').fadeOut(2000);
				return false;
			}
			var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
			if (pattern.test($('#send_email').val()) == false)
			{
				$('#wrong_email').show().css({
					color: 'red'
				}).text('Niepoprawny adres!');
				$('#wrong_email:visible, #wrong_username:visible').fadeOut(2000);
				return false;
			}
			return true;
		});
	},
	setKropka: function(imgDot){
		//commonObject.kropka = imgDot;
		$('#kropka img').attr('src', './templates/dermapol/images/' + imgDot);
	},
	
	setGallery: function(imgArr, launcher)
	{
		$(launcher).css({cursor:'pointer'}).click(function(){
			$('<div id="gray_gallery_background"/>').css({
				width: $(document).width(),
				height: $(document).height()
			}).appendTo('body');
			
			$('<div id="gray_gallery_background_inv"/>').css({
				width: $(document).width(),
				height: $(document).height()
			}).appendTo('body');
			$('<div id="gallery_inner" />').appendTo('#gray_gallery_background_inv');
			
			var galleryStr = '<div id="navigator_div"><div class="prev"></div><div class="scrollable"><ul class="gallery items">';
		
			for (var i = 0; i < imgArr.length; i ++)
			{
				galleryStr = galleryStr + '<li style="float:left;"><img src="' + imgArr[i] + '" alt="" /></li>'
			}
		
			galleryStr = galleryStr + '</ul></div><div class="next"></div></div><div id="main_image" /><div style="clear:both" />';
			
			$(galleryStr).appendTo('#gallery_inner');
			$('<img id="zamknij" src="./images/zamknij.jpg" alt="" />').click(function(){
				$('#gray_gallery_background, #gray_gallery_background_inv').fadeOut(1000, function(){
					$('#gray_gallery_background, #gray_gallery_background_inv').remove();
				});
			}).appendTo('#gallery_inner');
			$('div.prev, div.next').ifixpng();
			$('div.scrollable').scrollable({vertical:true, size: 5, next: 'div.next', prev: 'div.prev'});
			
			$('ul.gallery').galleria({
					history: false,
					onImage: function(image,caption,thumb) { // let's add some image effects for demonstration purposes
				
						// fade in the image & caption
						if(! ($.browser.mozilla && navigator.appVersion.indexOf("Win")!=-1) ) { // FF/Win fades large images terribly slow
							image.css('display','none').fadeIn(1000);
						}
						caption.css('display','none').fadeIn(1000);
				
						// fetch the thumbnail container
						var _li = thumb.parents('li');
				
						// fade out inactive thumbnail
						_li.siblings().children('img.selected').fadeTo(500,0.5);
				
						// fade in active thumbnail
						thumb.fadeTo('fast',1).addClass('selected');
				
						// add a title for the clickable image
						image.attr('title','Dalej >>');
					},
					onThumb : function(thumb) { // thumbnail effects goes here
				
						// fetch the thumbnail container
						var _li = thumb.parents('li');
				
						// if thumbnail is active, fade all the way.
						var _fadeTo = _li.is('.active') ? '1' : '0.5';
				
						// fade in the thumbnail when finnished loading
						thumb.css({display:'none',opacity:_fadeTo}).fadeIn(1500);
				
						// hover effects
						thumb.hover(
							function() { thumb.fadeTo('fast',1); },
							function() { _li.not('.active').children('img').fadeTo('fast',0.5); } // don't fade out if the parent is active
						)
					},
					insert    : '#main_image' // the containing selector for our main image

				});
			});
	},
	
	/*
	 *  wykonuje wszystkie zadania opisane w funkcjach; potrzebne do obslugi strony
	 */
	setDropMenu: function(){
		$('.moduletable-nav').addClass('jquerycssmenu').attr('id', 'myjquerymenu');
		jquerycssmenu.buildmenu("myjquerymenu", arrowimages);
		
	},
	execAll: function()
	{
		$('img[src$=.png]').ifixpng();
	}
	
 }

