
$(document).ready(function() {

  var add_fancyselect = function(obj) {
    $(obj).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();
    });
  };

  if ($('a.monitorJobSearch').length > 0) {
    (function($) {
      var TBmonitorAnonymous;
      var TBmonitorAnonymousSuccess;
      var loading = false;
      var loadTemplate = function() {
        if (!loading) {
          loading = true;
          $.loading_indicator(true, true);
          var BASEURL = $('head base').attr('href');
          $('<div></div>').appendTo('body').load(
            BASEURL + "ajax.php?controller=default&action=loadmonitoring", {},
            function(){
              TBmonitorAnonymous = $.thickbox.attach(null, {
                contentSelector : '#monitorAnonymous'
              });
              TBmonitorAnonymousSuccess = $.thickbox.attach(null, {
                contentSelector : '#monitorAnonymousSuccess',
                closeSelector : '#monitorAnonymousSuccess .option a',
                closeTime : 5
              });
              //monitorJobSearchform
              $('#monitorAnonymous form').jsonform({
                response : function(j, status){
                  if (status == 'success')
                    $.thickbox.show(TBmonitorAnonymousSuccess);
                },
                controller : 'myjob',
                action : 'monitoring'
              });

              $.jsonform.collectData = function(target) {
                var data = {};
                $(target).find('input[type=hidden], input[type=text], input[type=password], textarea, select').each(function() {
                  name = $(this).attr('name');
                  if (name && !$(this).attr('disabled')) {
                    val = $(this).val();
                    if ($(this).hasClass('regions')) {
                      if ($(this).parent().hasClass('checked'))
                        data['regions[]']? data['regions[]'].push(val) : data['regions[]'] = [val];
                    }else if ($(this).hasClass('categories')) {
                      if ($(this).parent().hasClass('checked'))
                        data['category[]']? data['category[]'].push(val) : data['category[]'] = [val];
                    } else
                      data[name] = val? val : '';
                  }
                });
                $(target).find('input[type=radio]:checked').each(function() {
                  name = $(this).attr('name');
                  if (name) {
                    val = $(this).val();
                    data[name] = val? val : '';
                  }
                });
                $(target).find('input[type=checkbox]:checked').each(function() {
                  name = $(this).attr('name');
                  if (name) {
                    val = $(this).val();
                    data[name] = val? val : '';
                  }
                });

                return data;
              };


              $('#monitorAnonymous a.TBclose').click(function(){
                $.thickbox.close()
              });
              add_fancyselect('#monitoringregions');
              add_fancyselect('#monitoringcategories');

              var ad = document.location.href.split('/').pop();
              $('select#monitoring_country').change(function(){
                if (!$(this).val()) {
                  $('#monitoringregions').text('');
                } else {
                  $.loading_indicator(true, true);
                  $.ajax({
                    url : 'ajax.php?controller=myjob&action=regionshtml',
                    data : {
                      country : $(this).val(),
                      ad : ad
                    },
                    complete :  function(r, textStatus) {
                      $('#monitoringregions').html(r.responseText);
                      add_fancyselect('#monitoringregions');
                      $.loading_indicator();
                    }
                  });
                }
              });
              $.loading_indicator();
              $.thickbox.show(TBmonitorAnonymous);
            }
            );
        }
      }

      //show loginform
      $("a.monitorJobSearch").click(function(e){
        e.preventDefault();
        if (TBmonitorAnonymous) {
          $.thickbox.show(TBmonitorAnonymous);
        } else {
          loadTemplate();
        }
      });
    })(jQuery);

  }
});


