$(document).ready(function(){
	// ustawienia
	var MAX_KEYWORDS = 10;
	
	var currentPathwayHolder = $('#currentPathwayHolder');
	
	// zakladki formularza
	var divStep1 = $('#form-step1');
	var divStep2 = $('#form-step2');
	
	$('#next-step-button').click(function(){
		if (validateTab1())
		{
			currentPathwayHolder.val('step2');
			changePathway();
			divStep1.slideUp(500);
			divStep2.slideDown(500);
		}
		return false;
	})
	$('#prev-step-button').click(function(){
		currentPathwayHolder.val('step1');
		changePathway();
		divStep1.slideDown(500);
		divStep2.slideUp(500);
		
		return false;
	})
	
	$('#order-valuation-button').click(function(){
		return validateTab2();
	})
	
	// otworzenie drugiej zakladki, jesli formularz zostal wyslany i bledy byly tylko w polach znajdujacych sie na drugiej stronie
	if ($('#currentPathwayHolder[value="step2"]').length > 0)
	{
		changePathway();
		divStep1.css('display', 'none');
		divStep2.css('display', 'block');
	}
	
	// ponowne pokazywanie formularza po poprawnym przeslaniu
	$('#showForm').click(function(){
		$('#form-step1').slideDown(500);
		$('#flash').slideUp(200);
		currentPathwayHolder.val('step1');
		changePathway();
		$(this).hide(0);
		return false;
	})
	
	// slowa kluczowe
	bindAutocomplete();
	function bindAutocomplete() {
		$('input.input-keyword').autocomplete('./google_suggest.php', {
			maxCacheLength : 1,
			selectFirst : false,
			cacheLength : 10,
			matchSubset : false,
			delay : 1000,
			minChars : 2
		});
	}
	
	showKeywordsFields();
	$('#formSuggestKeywords, #formDontSuggestKeywords').click(function(){
		showKeywordsFields();
	})
	function showKeywordsFields()
	{
		if ($('#formSuggestKeywords').is(':checked'))
		{
			$('.keyword-row').css('display', 'none');
			$('#add-next-keyword').css('display', 'none');
		} else if ($('#formDontSuggestKeywords').is(':checked')){
			$('.keyword-row').show();
			$('#add-next-keyword').show();
		}
	}
	
	// dodawanie nowego slowa kluczowego
	$('#add-next-keyword td a').click(function(){
		count = $('.keyword-row').size();

		newKeyword = $('#keywordRow' + parseInt(count-1)).clone();
		newKeyword
			.attr('id', 'keywordRow' + count)
			.children('.ask-col')
				.children('label')
					.attr('for', 'formKeyword' + count)
					.html('Słowo kluczowe ' + parseInt(count+1));

		newKeyword
			.children('.answer-col')
				.children('input')
					.attr('tabindex', parseInt(count+2))
					.attr('id', 'formKeyword' + count)
					.attr('name', 'data[keywords][' + count + ']')
					.val('');
			
		$('#add-next-keyword').before(newKeyword);
		bindAutocomplete();
		$('#formKeyword' + count).focus();

		if (count + 1 >= MAX_KEYWORDS) {
			$('#add-next-keyword').hide();
		}
		
		return false;
	})
	
	// walidacja pol na pierwszej stronie
	function validateTab1()
	{
		errors = new Array;
		
		// adres url 
		var siteUrlEl = $('#formSiteUrl');
		var regUrl= /([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		
		if (siteUrlEl.val() != '' && regUrl.test(siteUrlEl.val()))
			removeByValue(errors, siteUrlEl.attr('id'));
		else
			errors[errors.length] = siteUrlEl.attr('id');
		
		// adres url - zastrzezone adresy zawierajace
		var bannedUrls = ['.google.com', '.google.pl', '.facebook.com', '.twitter.com'];
		$.each(bannedUrls, function(key, bannedUrl){
			if (siteUrlEl.val().indexOf(bannedUrl) != -1) {
				errors[errors.length] = siteUrlEl.attr('id');
			}
		})
		
		// adres url - zastrzezone dokladne adresy
		var bannedUrls = ['google.com', 'google.pl', 'facebook.com', 'twitter.com'];
		$.each(bannedUrls, function(key, bannedUrl){
			if (siteUrlEl.val() == bannedUrl) {
				errors[errors.length] = siteUrlEl.attr('id');
			}
		})
		
		// pierwsze slowo kluczowe
		if ($('#formKeyword0').val() == '' && $('#formSuggestKeywords').is(':not(:checked)'))
			errors[errors.length] = $('#formKeyword0').attr('id');
		else
			removeByValue(errors, $('#formKeyword0').attr('id'));

		showHideErrors(errors, 'form-step1')
		
		if (errors.length > 0) {
			return false;
		}
		
		return true;
	}
	
	
	// walidacja pol na drugiej stronie
	function validateTab2()
	{
		errors = new Array;
		//imie nazwisko
		if ($('#formPersonName').val() == '')
			errors[errors.length] = $('#formPersonName').attr('id');	
		else 
			removeByValue(errors, $('#formPersonName').attr('id'));
		
		// adres email
		var regEmail = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if ($('#formPersonEmail').val() != '' && regEmail.test($('#formPersonEmail').val()))
			removeByValue(errors, $('#formPersonEmail').attr('id'));
		else
			errors[errors.length] = $('#formPersonEmail').attr('id');
	
		// telefon
		var regPhone = /^([\-0-9\s\(\)])+$/;
		if ($('#formPersonPhone').val() != '' && regPhone.test($('#formPersonPhone').val()))
			removeByValue(errors, $('#formPersonPhone').attr('id'));
		else
			errors[errors.length] = $('#formPersonPhone').attr('id');
		
		// captcha
		if ($('#formCaptcha').val() == '')
			errors[errors.length] = $('#formCaptcha').attr('id');	
		else
			removeByValue(errors, $('#formCaptcha').attr('id'));
		
		showHideErrors(errors, 'form-step2')
		
		if (errors.length > 0) {
			return false;
		}
		
		return true;
	}
	
	function showHideErrors(errors, tab) {
		var errors = errors;

		$('#' + tab + ' input, #' + tab + ' textarea').each(function()
		{
			idEl = $(this).attr('id');
			if (jQuery.inArray(idEl, errors) > -1 && idEl != '' && idEl != 'undefined') {
				$('#' + idEl).addClass('field-error');
				$('#' + idEl + 'Error').slideDown(300);
			} else {
				$('#' + idEl).removeClass('field-error');
				$('#' + idEl + 'Error').slideUp(300);
			}
		});
	}
	
	// usuwa element tablicy na podstawie wartosci elementu
	function removeByValue(arr, val) {
	    for(var i=0; i<arr.length; i++) {
	        if(arr[i] == val) {
	            arr.splice(i, 1);
	            break;
	        }
	    }
	}
	
	// tooltip
	$("body").append('<span id="tooltip"></span>');

    $(".tooltip").live('mouseenter', function(event) {
    	if ($(this).attr('title') != '')
    	{
			$(this).mousemove(function(e) {
				var dY = e.pageY;
				var dX = e.pageX + 20;
				$("#tooltip").css({'top': dY, 'left': dX});
			});
			$("#tooltip")
				.stop(true, true)
				.html($(this).attr('title'))
				.fadeIn(100);
			$(this).removeAttr('title');
			$(this).attr('title', '');
    	}
    });
    $(".tooltip").live('mouseleave', function(event) {
	    $("#tooltip").stop(true, true);
	    $("#tooltip").fadeOut(100);
	    $(this).attr('title', $("#tooltip").html());
    });
	
    $('.help-icon').click(function(){
    	return false;
    })
    
    // pathway
    changePathway();
    function changePathway()
    {
    	current = currentPathwayHolder.val();
    	$('#pathway span').removeClass('current');
    	$('#pathway span.' + current).addClass('current');
    }
    
    // walidacja po wcisnieciu jakiegokolwiek klawisza
    $('input, textarea').keyup(function(){
    	if ($(this).hasClass('field-error'))
    	{
	    	if ($(this).is('#formSiteUrl') || $(this).is('.input-keyword'))
	    		validateTab1();
	    	else
	    		validateTab2();
    	}
    })
    
    // Tylko wartosci numeryczne dla pol
    $("#formCaptcha, #formCompanyNip").keydown(function(event) {
        if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 109) {}
        else {
            if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
                event.preventDefault(); 
            }   
        }
    });

})
