/** @author Tomasz Banasiak dla MSERWIS
 *  @package walizeczka
 *  @version 0.9
 */

var fieldDefault = 0;
var mSubcat = 0;
var currIndex = 0;
var spoffer = new Array();
var addCriteria = false;
var imgPreload1 = new Image;
imgPreload1.src = MAINURL+'images/miniload.gif';
var ttimer;
var spOindex = 0;
var preloadedArray = new Array();
var voted = false;
var verified = false;


function relVote(id,vote)
{
	if(voted) {
		alert('Już głosowałeś.');
		return;
	}
	$('#relg').html('Zapisywanie..');
	var rsp = $.ajax({
		  url: MAINURL+"api/vote?relId="+id+"&vote=1",
		  async: false
		 }).responseText;
	if(rsp=='err') $('#relg').html('Wystąpił błąd');
	else if(rsp=='ulog') {alert('Musisz się zalogować aby móc oddać głos'); $('#relg').html('Zaloguj się'); }
	else if(rsp=='vyet') $('#relg').html('Już głosowałeś');
	else {
		//żadna z odpowiedzi - splitujemy
		var result = rsp.split("|");
		if(result[0]!='ok') { alert(rsp); $('#relg').html('Wystąpił błąd'); }
		else
		{
			//update ocen i statusów
			if(result[2]==1) {
				$('#relg').html('Jednej osobie się podoba'); }
			else if(result[2]==2) {
				$('#relg').html('Dwóm osobom się podoba'); }
			else {
				$('#relg').html(result[2]+ ' osobom się podoba'); }
			voted = true;
		}
	}
		
}

function addToFavourites(offerId)
{
	$('#addToFavourites').html('<img src="'+MAINURL+'images/miniload.gif" alt="wczytywanie..."/>');
	$('#addToFavourites').load(MAINURL+'api/addToFavourites/'+offerId+'.html');
}

whereAreWe = 1; // ta zmienna mówi, na której ofercie jesteśmy
enabled = true;

function specialOfferGo()
{
   clearTimeout(ttimer);
   enabled = false;

 if (whereAreWe >= preloadedArray.length)
    whereAreWe = 0;
 if (whereAreWe < 0)
    whereAreWe = preloadedArray.length-1;
 $('#spofferImage').fadeOut('fast',function()
	{
      var img = preloadedArray[whereAreWe];
      document.getElementById('spofferImage').src = img.src;
      document.getElementById('spofferLink').href = spoffer[whereAreWe][1];
      document.getElementById('spofferLink2').href = spoffer[whereAreWe][1];
      document.getElementById('spofferLink').innerHTML = spoffer[whereAreWe][2];
      $('#spofferDesc').html(spoffer[whereAreWe][3]);
      $('#spofferImage').fadeIn('fast', function(){
         whereAreWe++;
         enabled = true;
      });
   });

   ttimer = setTimeout('timedChanges()',10000);

}

function sog(index)
{
   if (!enabled) return;
   whereAreWe += (index-1);
	specialOfferGo();
}

function timedChanges()
{
	specialOfferGo();
}

function spa(imagez, link, title, desc)
{
	var item = new Array();
	item.push(imagez);
	item.push(link);
	item.push(title);
	item.push(desc);

   var imag = new Image;
   imag.src = imagez;

	preloadedArray[preloadedArray.length] = imag;
   spoffer.push(item);
}

function ao(name,value)
{
	if(mSubcat == value) return '<option value="'+value+'" selected="selected">'+name+'</option>';
	else return '<option value="'+value+'">'+name+'</option>';
}
function selectCategory(obj,subcat)
{
	var cat = obj;
	mSubcat = subcat;
	var options = '';
	options += ao('-dowolna-','all');
	
	var selectBoxSpan = $('#fsubcat').next();
	var selectBoxSpanInner = selectBoxSpan.find(':first-child');
	selectBoxSpanInner.text('-dowolna-');
	
	if(cat == 'wycieczki')
	{
		showAdditionalInfo('trips','540');
		options += ao('Krótkie, weekendowe',1);
		options += ao('Objazdowe',2);
		options += ao('Objazdowo wypoczynkowe',3);
		options += ao('Wypoczynkowe',4);
		options += ao('Aktywne',5);
		options += ao('Fitness i SPA',6);
		options += ao('Wczasy',7);
		options += ao('Wyjazdy językowe',8);
		options += ao('Obozy, kolonie',9);
		options += ao('Egzotyczne',10);
		options += ao('Wyprawy',11);
		options += ao('Inne',12);
	}
	else if(cat == 'noclegi')
	{
		showAdditionalInfo('accomodation','560');
		options += ao('Hotele',13);
		options += ao('Zajazdy, motele',14);
		options += ao('Pensjonaty, apartamenty',15);
		options += ao('Hotele, schroniska',16);
		options += ao('Ośrodki wczasowe, wypoczynkowe',17);
		options += ao('Pokoje, kwatery',18);
		options += ao('Agrogospodarstwa',19);
		options += ao('Domki campingowe, campingi',20);
		options += ao('Pola namiotowe, biwakowe',21);
		options += ao('Inne',22);
	}
	else if(cat == 'spa')
	{
		showAdditionalInfo('spa','450');
		options += ao('Sanatoria',23);
		options += ao('Hotele SPA',24);
		options += ao('Ośrodki SPA',25);
		options += ao('Pensjonaty SPA',26);
		options += ao('Szpitale uzdrowiskowe',27);
		options += ao('Zabiegi lecznicze',28);
		options += ao('Inne',29);
	}
	else if(cat == 'gastronomia')
	{
		showAdditionalInfo('catering','430');
		options += ao('Restauracje',30);
		options += ao('Karczmy, gospody',31);
		options += ao('Zajazdy',32);
		options += ao('Kawiarnie',33);
		options += ao('Kluby',34);
		options += ao('Bary, bistra',35);
		options += ao('Puby',36);
		options += ao('Inne',37);
	}
	else if(cat == 'atrakcje')
	{
		showAdditionalInfo('activities','420');
		options += ao('Regiony turystyczne',38);
		options += ao('Powiaty i miasta',39);
		options += ao('Parki narodowe, rezerwaty przyrody',40);
		options += ao('Muzea, zabytki, skanseny',41);
		options += ao('Ogrody',42);
		options += ao('Obiekty sportowo-rekreacyjne',43);
		options += ao('Festiwale',44);
		options += ao('Koncerty',45);
		options += ao('Inne atrakcje',46);
	}	
	else if(cat == 'oferty')
	{
		showAdditionalInfo('offers','410');
		options += ao('Organizacja konferencji i szkoleń',47);
		options += ao('Organizacja wesel, przyjęć bankietów',48);
		options += ao('Organizacja białych i zielonych szkół',49);
		options += ao('Organizacja obozów, kolonii',50);
		options += ao('Wycieczki na zamówienie, pielgrzymki',51);
		options += ao('Organizacja rejsów i spływów',52);
		options += ao('Wynajem autokarów',53);
		options += ao('Wynajem sprzętu rekreacyjno turystycznego',54);
		options += ao('Paintball, softair, survival',55);
		options += ao('Catering, organizacja eventów',56);
		options += ao('Biura podróży',59);
		options += ao('Sklepy i księgarnie turystyczne',60);
		options += ao('Inne oferty',57);
		
	}
	else if(cat == 'all')
	{
		hideAdditionalInfo();
	}
	$('#fsubcat').html(options);
	//wyświetlamy jeśli coś jest zaznaczone
	var selectBoxSpan = $('#fsubcat').next();
	var selectBoxSpanInner = selectBoxSpan.find(':first-child');
	selectBoxSpanInner.html('<div class="customSelectBoxCaption">'+document.getElementById('fsubcat').options[document.getElementById('fsubcat').selectedIndex].text+'</div>');
	

}

/********* karuzelka ***********/
(function () {
    $.fn.infiniteCarousel = function () {
        function repeat(str, n) {
            return new Array( n + 1 ).join(str);
        }
        
        return this.each(function () {
            // magic!
            var $wrapper = $('> div', this).css('overflow', 'hidden'),
                $slider = $wrapper.find('> ul').width(9999),
                $items = $slider.find('> li'),
                $single = $items.filter(':first')
                
                singleWidth = $single.outerWidth(),

                singleWidth = 76,
                
                visible = 3,
                currentPage = 1,
                pages = Math.ceil($items.length / 3),
                noItems = $items.length;
                
            /* TASKS */
            if(noItems > 3)
            {
	            // 1. pad the pages with empty element if required
	           // alert($items.length);
	            visible = 3;
	            if ($items.length % visible != 0) {
	                // pad
	                //$slider.append(repeat('<li class="empty" />', visible - ($items.length % 1)));
	                $items = $slider.find('> li');
	            }
	            
	            // 2. create the carousel padding on left and right (cloned)
	            //$items.filter(':first').before($items.slice(-visible).clone().addClass('cloned'));
	            //$items.filter(':first').before($items.slice(-visible).clone().addClass('cloned'));
	            //$items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
	            //$items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
	           
	           
	            $items = $slider.find('> li');
	           
	            // 3. reset scroll
	            //$wrapper.scrollLeft(singleWidth * visible);
	            $wrapper.scrollLeft(0);
	            visible = 1;
            }
            // 4. paging function
            function gotoPage(page) {
                var dir = page < currentPage ? -1 : 1,
                    n = Math.abs(currentPage - page),
                    left = singleWidth * dir * 1 * n;
                if(page <= (noItems) && page >= 0)
                {
                	left = singleWidth * dir * 1 * n;
                $wrapper.filter(':not(:animated)').animate({
                    scrollLeft : '+=' + left
                }, 500);
                currentPage = page;
                }                
                /*
                 * , function () {
                    // if page == last page - then reset position
                    if (page > noItems + 3) {
                        $wrapper.scrollLeft(noItems * singleWidth);
                        page = 1;
                    } else if (page == 0) {
                        page = noItems -1;
                        //alert(noItems);
                        $wrapper.scrollLeft(singleWidth * (noItems + 3));
                    }
                    
                    currentPage = page;
                }
                 */
                
            }
            
/*
            // 6. bind the back and forward links
            $('#carLeft').click(function () {
                gotoPage(currentPage - 1);
                return false;
            });
            
            $('#carRight').click(function () {
                gotoPage(currentPage + 1);
                return false;
            });*/
            if(noItems > 3)
            {
	            // 5. insert the back and forward link
	            $wrapper.after('<a href="#" class="arrow back">&nbsp;</a><a href="#" class="arrow forward">&nbsp;</a>');
	            
	            // 6. bind the back and forward links
	            $('a.back', this).click(function () {
	                gotoPage(currentPage - 1);
	                return false;
	            });
	            
	            $('a.forward', this).click(function () {
	                gotoPage(currentPage + 1);
	                return false;
	            });
	            
	            $(this).bind('goto', function (event, page) {
	                gotoPage(page);
	            });
	            
	            // THIS IS NEW CODE FOR THE AUTOMATIC INFINITE CAROUSEL
	            $(this).bind('next', function () {
	                gotoPage(currentPage + 1);
	            });
	         }
        });
    };
})(jQuery);

$(document).ready(function () {    
    $('.infiniteCarousel').infiniteCarousel(); 
});

function checkRelationForm()
{
	if(!validateField('relation_title',5))
	{
		alert('Tytuł nie może być krótszy niż 5 znaków');
		return false;
	}
	
	if(!validateField('relation_content',10))
	{
		//alert('Treść nie może być krótsza niż 10 znaków');
		//return false;
	}
	
	return true;	
}

function refreshSelectBoxes()
{
	//$('select.selectBox2').customStyle(); -doin a fallback
}

function moreLessOptions()
{
	if(!addCriteria)
	{
		//wyświetlamy zaawansowane
		$('#mainAdvancedOptions > .advancedCriteria').fadeIn();
		
		addCriteria = true;
		$('#moreLessLink').html('Mniej kryteriów');
		
	}
	else
	{
		//chowamy
		$('#mainAdvancedOptions > .advancedCriteria').fadeOut();
		addCriteria = false;
		$('#moreLessLink').html('Więcej kryteriów');
	}
	
}

function showAdditionalInfo(obj,oheight)
{
	//chowamy
	if(addCriteria)
	{
		$('#mainAdvancedOptions > .advancedCriteria').fadeOut();
		addCriteria = false;
		$('#moreLessLink').html('Więcej kryteriów');
	}
	
	$('#mainAdvancedOptions').html($('#'+obj+'AdvancedOptions').html());
		
	//update select boxów
   $("#mainAdvancedOptions .datePicker").datepicker({firstDay: 1,
       dateFormat: 'yy-mm-dd',
       dayNamesMin: ['Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So', 'Nd'],
       monthNames: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień']
       });
       		
}
function hideAdditionalInfo()
{
	$('.additionalOptions').fadeOut('normal',function() 
	{
		$('#mainAdvancedOptions').html('');
	});
}
(function($){
 $.fn.extend({
 
 	customStyle : function(options) {
	  if(!$.browser.msie || ($.browser.msie&&$.browser.version>6)){
	  return this.each(function() {
	  
			var currentSelected = $(this).find(':selected');
			var customSelected = this.selectedIndex;
			
			$(this).after('<span class="customSelectBox"><span class="customSelectBoxInner"><div class="customSelectBoxCaption">'+currentSelected.text()+'</div></span></span>').css({position:'absolute', opacity:0,fontSize:$(this).next().css('font-size')});
			var selectBoxSpan = $(this).next();
		  	var selectBoxWidth = parseInt($(this).width()) - parseInt(selectBoxSpan.css('padding-left')) -parseInt(selectBoxSpan.css('padding-right'));			
			var selectBoxSpanInner = selectBoxSpan.find(':first-child');
			selectBoxSpan.css({display:'inline-block'});
		    selectBoxSpanInner.css({width:selectBoxWidth, display:'inline-block'});
			var selectBoxHeight = parseInt(selectBoxSpan.height()) + parseInt(selectBoxSpan.css('padding-top')) + parseInt(selectBoxSpan.css('padding-bottom'));
			$(this).height(selectBoxHeight).change(function(){
				selectBoxSpanInner.html('<div class="customSelectBoxCaption">'+this.options[this.selectedIndex].text+'</div>').parent().addClass('customSelectBoxChanged');
			});
			
	  });
	  }
	}
 });
})(jQuery);

function checkSearchField()
{
    if($('#mainSearchInput').val() == 'Wpisz szukane słowo...') {  $('#mainSearchInput').val(''); }
}

//facebook widget
$(document).ready(function(){
	$(".trigger").click(function(){
			$(".FBpanel").toggle("fast");
			$(this).toggleClass("active");
			$(".trigger").toggle();
			return false;
	});
	$(".FBCloseButton").click(function(){
		$(".FBpanel").toggle("fast");
		$(".trigger").toggle();
	});
});


function showLoginForm(height)
{
	diW = document.getElementById('pageLoginBox');
	
	if (diW.style.width != '210px')
	{
	$('#pageLoginBox').fadeIn('fast', function() {
		$(diW).animate({ 
	        width: "210px"
	      }, 300, "", function() {	
	    	  $('#pageMyAccount').css('background-position','right bottom');
				$('#pageLoginBox').animate({ height: height+'px' }, 400, "", function(){
					$('#pageLoginBoxInner').fadeIn(200);
					
				});
			} );
		}
		);
	}
	else
	{
		$('#pageLoginBoxInner').fadeOut(200, function(){
			$('#pageLoginBox').animate({height: "0px"}, 400, function(){
				$('#pageMyAccount').css('background-position','right top');
				$('#pageLoginBox').animate({width: "140px"}, 300, function() { $('#pageLoginBox').fadeOut();
				});
			})
		});
	}
	return false;
}
var stopTimer = null;
var ok = true;
function setWaiting()
{
	$('#TB_ajaxWindowTitle').html('<b>Proszę czekać.. Trwa wysyłanie danych</b>');
	$("#TB_ajaxContent").append("<div id='TB_overlayInner'></div>");
	$("#TB_overlayInner").fadeIn();
	stopTimer = setTimeout('cannotSend()',10000);
	ok = false;
}

function cannotSend()
{
	$('#TB_ajaxWindowTitle').html('<b>Błąd komunikacji z serwerem</b>');
	if(!ok) $('#TB_ajaxContent').html('<div style="font-size: 13px; text-align: center; color:red;">Niestety, nie udało się wysłać danych. Odśwież stronę i spróbuj ponownie. Przepraszamy.<br/><br/> <a href="#" onclick="window.location.reload( true ); return false;">Odśwież stronę</a><br/><a href="#" onclick="restoreAjaxBox(); tb_remove(); return false;">Tylko zamknij okienko</a></div>');
}

function stopWaiting()
{
	ok = true;
	$('#TB_ajaxWindowTitle').html('<b>Wysłano</b>');
	clearTimeout();
	clearTimeout(stopTimer);
	stopTimer = null;
}

function setContent(content)
{
	$('#TB_ajaxContent').html(content);
}

function cacheAjaxBox()
{
	fieldDefault = $('#TB_ajaxContent').html();
}

function restoreAjaxBox()
{
	setContent(fieldDefault);
}

/** DD Menu **/
var timeout    = 500;
var closetimer = null;
var ddmenuitem = null;
var currItem = null;

function ddmenu_open(){
    ddmenu_canceltimer();
    ddmenu_close();
    $(this).find('a').addClass('active');
    currItem = this;
    ddmenuitem = $(this).find('ul').css('visibility', 'visible');
}

function ddmenu_close(){ 
	$(currItem).find('a').removeClass('active');
    if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');
}

function ddmenu_timer(){
    closetimer = window.setTimeout(ddmenu_close, timeout);
}

function ddmenu_canceltimer(){  
    if(closetimer){  
        window.clearTimeout(closetimer);
        closetimer = null;
}}

$(document).ready(function()
{  $('#pageMenuWrapper > ul > li').bind('mouseover', ddmenu_open);
   $('#pageMenuWrapper > ul > li').bind('mouseout',  ddmenu_timer);
});

document.onclick = ddmenu_close;


/*** Funkcje do nazw zdjęć ***/
function changePhotoName(photoId, oldName)
{
	var name = prompt("Podaj nazwę dla tego zdjęcia w polu poniżej:",oldName);
	
	if(name.length > 100) 
	{
		alert('Nazwa zdjęcia może mieć maks 100 znaków');
		return false;
	}
	
	if(name)
	{
		$('#photoName'+photoId).html('Zapisywanie...');
		$('#photoName'+photoId).load(MAINURL+'api/changePhotoName/'+photoId+'/'+encodeURIComponent(name)+'.html');
	}
}

function changePhotoName2(photoId, oldName)
{
	var name = prompt("Podaj nazwę dla tego zdjęcia w polu poniżej:",oldName);
	
	if(name.length > 100) 
	{
		alert('Nazwa zdjęcia może mieć maks 100 znaków');
		return false;
	}
	
	if(name)
	{
		$('#photoName'+photoId).html('Zapisywanie...');
		$('#photoName'+photoId).load(MAINURL+'api/changePhotoName2/'+photoId+'/'+encodeURIComponent(name)+'.html');
	}
}


function changePhotoName3(photoId, oldName)
{
	var name = prompt("Podaj nazwę dla tego zdjęcia w polu poniżej:",oldName);
	
	if(name.length > 100) 
	{
		alert('Nazwa zdjęcia może mieć maks 100 znaków');
		return false;
	}
	
	if(name)
	{
		$('#photoName'+photoId).html('Zapisywanie...');
		$('#photoName'+photoId).load(MAINURL+'api/changePhotoName3/'+photoId+'/'+encodeURIComponent(name)+'.html');
	}
}

function verifyDiscountCode()
{
	$('#discountStatus').html('Sprawdzanie... Proszę czekać.');
	var churl = MAINURL+"api/chDiscountCode?code="+$('#discountCode').val()+'&len='+$('#oflen').val()+'&cat='+$('#mainCategory').val();
	//alert(churl);
	var rsp = $.ajax({
		  url: churl,
		  async: false
		 }).responseText;
	if(rsp=='used') $('#discountStatus').html('<br/><font color="red">Kod został już wykorzystany dopuszczalną ilość razy.</font>');
	if(rsp=='ulog') $('#discountStatus').html('<br/><font color="red">Twoja sesja wygasła. Zaloguj się ponownie w oddzielnym oknie przeglądarki i spróbuj ponownie.</font>');
	if(rsp=='wrcat') $('#discountStatus').html('<br/><font color="red">Kod nie jest przeznaczony do wybranej przez Ciebie kategorii</font>');
	if(rsp=='expired') $('#discountStatus').html('<br/><font color="red">Kod jest nieprawidłowy lub minął okres jego ważności..</font>');
	if(rsp=='wrdaymode') $('#discountStatus').html('<br/><font color="red">Kod nie jest przeznaczony na wybrany przez Ciebie okres publikacji</font>');
	if(rsp=='ok') 
		{	$('#discountStatus').html('<br/><font color="green">Kod jest prawidłowy. Zniżka przypisana do kodu zostanie przyznana</font>');
			verified = true;
		}
}

function declineVer()
{
	$('#discountStatus').html(' ');
	verified = false;
}

function checkCodeValid()
{
	var code = $('#discountCode').val();
	if(code.length > 2 && !verified)
	{
		alert('Wpisując kod musisz sprawdzić jego poprawność przed zapisaniem danych! Kliknij "Sprawdź poprawność kodu" aby zweryfikować poprawność Twojego rabatu');
		return false;
	}
	else return true;
		

}
