$(document).ready(function() {
  (function($) {
    var advancedSearchLink = $("#advancedSearchLink");
    var advancedSearch = $("#advancedSearch, #advancedSearchDark");
    var navigation = $("#navigation");
    var opened = false;
	var loaded = false;

	function init() {
		advancedSearch.find('select,input[name]').each(function(){
			var val = $.trim($(this).val());
			if (val)
				data.push($.trim($(this).attr('name')) + '/' + val);
		});
		advancedSearch.find('.fancyoptions').each(function(){
			var options = [];
			$('span.checked', this).each(function(){
				options.push($.trim($(this).find('input').val()));
			});
			if (options.length > 0)
				data.push($.trim($('.urlname', this).val()) + '/' + options.join(','));
		});

		$('#jobsearch .fancyselect').each(function() {

			var parent = $(this);
			var options = parent.find('.fancyoptions');
			var rootun = parent.find('p.root').filter('.unselected');
			var rootsel = parent.find('p.root').filter('.selected');
			var seltext = rootsel.text();

			function setRoor() {
				var l = options.find('span.checked').length;
				if (l > 0) {
					rootun.hide();
					rootsel.text('(' + l + ') ' + seltext).show();
				} else {
					rootun.show();
					rootsel.hide();
				}
			}
			// checkboxi klikk
			function listener_checkbox(e) {
				e.stopPropagation()
				var option_root = $(this).next().hasClass("branch-root")? true : false;

				if ($(this).hasClass("checked")) {
					$(this).removeClass("checked").addClass("unchecked");
					if (option_root)
						$("ul .checkbox", $(this).parent().parent()).removeClass("checked").addClass("unchecked");
				} else {
					$(this).removeClass("unchecked").addClass("checked");
					if (option_root)
						$("ul .checkbox", $(this).parent().parent()).removeClass("unchecked").addClass("checked");
				}
				setRoor();
			}
			// teksti peal klikk muudab checkbox'i staatust
			function listener_option(e) {
				e.stopPropagation()
				var option_root = $(this).next().hasClass("branch-root")? true : false;
				if ($(".checkbox", $(this).parent()).hasClass("checked")) {
					$(".checkbox", $(this).parent()).removeClass("checked").addClass("unchecked");
					if (option_root)
						$(".checkbox", $(this).parent().parent()).removeClass("checked").addClass("unchecked");
				} else {
					$(".checkbox", $(this).parent()).removeClass("unchecked").addClass("checked");
					if (option_root)
						$(".checkbox", $(this).parent().parent()).removeClass("unchecked").addClass("checked");
				}
				setRoor();
			}
			// avab / sulgeb alamcheckboxid
			function listener_branch(e) {
				e.stopPropagation()
				if ($(this).hasClass("opened")) {
					$(this).removeClass("opened").addClass("closed");
					$("ul:first", $(this).parent().parent()).addClass("hidden");
				} else {
					$(this).removeClass("closed").addClass("opened");
					$("ul:first", $(this).parent().parent()).removeClass("hidden");
				}
			}

			$(document).click(function(e){
				options.addClass('hidden');
			});
			parent.each(function() {
				$(".checkbox", this).click(listener_checkbox); // checkboxi klikk
				$(".option", this).click(listener_option); // teksti peal klikk muudab checkbox'i staatust
				$(".has_subitems .branch-root", this).click(listener_branch); // avab / sulgeb alamcheckboxid
				$("p", this).mouseenter(function(){
					$(this).addClass("hover");
				}).mouseleave(function(){
					$(this).removeClass("hover");
				}); // hover effekt
				$(".root", this).click(function(e){
					e.stopPropagation()
					if (options.hasClass("hidden")) {
						options.removeClass("hidden");
					} else {
						options.addClass("hidden");
					}
				});
			});
			options.bgiframe();
		});

	}


	function openAdvancedSearch() {
		advancedSearchLink.toggleClass("advancedSearchLinkOpened");
		navigation.addClass("navigationAdvancedSearchOpened");
		advancedSearch.slideToggle();
		opened = true;
	}

    advancedSearchLink.click(function() {
      if (opened) {
        advancedSearchLink.toggleClass("advancedSearchLinkOpened");
        advancedSearch.slideToggle("slow", function() {
          navigation.toggleClass("navigationAdvancedSearchOpened");
          opened = false
        });
      } else {
		  if(!loaded) {
			  $.loading_indicator(true, true);
			  $('#advancedSearch').load(
				  BASEURL + "ajax.php?controller=general&action=loadadvancedsearch", 
				  function() {
					  openAdvancedSearch();
					  loaded = true;
					  $.loading_indicator();
					  init();
				  });
		  } else {
			  openAdvancedSearch();
		  }
      }
    });
  })(jQuery);
});

