/* Multi select boxes */
(function ($) {
  Drupal.behaviors.hrasearchexclude = {
    attach: function (context, settings) {
    if(!$(".field-type-taxonomy-term-reference select").hasClass("didit")) {
    	$(".field-type-taxonomy-term-reference select").listselect();
    	$(".field-type-taxonomy-term-reference select").addClass("didit");
    	}
    }
  };
}(jQuery));;
(function ($) {
    $.fn.listselect = function (options) {
        var defaults = {
            size: 10,
            listTitle: "All",
            selectedTitle: "Selected"
        }
 
        var options = $.extend(defaults, options);
 
        return this.each(function () {
        if  ($(this).val()) {
            $(this).attr('selected', $(this).val().join(','));
            }
            var listContainer = $("<div style=\"margin-right: 5px; float: left; width: 200px;\"></div>");
            if (options.listTitle && options.listTitle != '') listContainer.append("<strong>" + options.listTitle + "</strong>");
 
            var selectedContainer = $("<div style=\"float: left; width: 200px;\"></div>");
            if (options.selectedTitle && options.selectedTitle != '') selectedContainer.append("<strong>" + options.selectedTitle + "</strong>");
 
            var selected = $(this);
            listContainer.insertBefore(selected);
            selectedContainer.insertAfter(listContainer);
            selected.remove();
 
            var hiddenFieldsContainer = $("<div style=\"clear: both;\"></div>");
            hiddenFieldsContainer.insertAfter(selectedContainer);
 
            var list = $("<select></select>");
            var selectedValues = null;
            if (selected.attr("selected")) {
                selectedValues = selected.attr("selected").split(",");
            }
 
            var fieldname = selected.attr('name');
            var fieldID = fieldname.replace("[]" , "");
            selected.attr('name', '');
            selected.attr('id', '');
            selected.css("width", "100%");
            list.css("width", "100%");
 
            list.html(selected.html());
            selected.html('');
 
            selected.attr('size', options.size);
            list.attr('size', options.size);
 
            listContainer.append(list);
            selectedContainer.append(selected);
 
            list.bind("click", function () {
                var option = $(this).find("option[value='" + $(this).val() + "']");
                if(option.length > 0){
                    var hiddenObj = $("<input type=\"checkbox\" style=\"display: none\" checked=\"checked\" name=\"" + fieldname + "\" id=\"listselect_" + fieldID + "_" + $(this).val() + "\" value=\"" + $(this).val() + "\" />");
 
                    option.remove();
                    selected.append(option);
                    hiddenFieldsContainer.append(hiddenObj);
 
                    selected.val('');
                    list.val('');
                }
            });
 
            selected.bind("click", function () {
                var option = $(this).find("option[value='" + $(this).val() + "']");
                if(option.length > 0){
                    var hiddenObj = $("#listselect_" + (fieldID.replace("[", "\\[")).replace("]","\\]") + "_" + $(this).val());
                    option.remove();
                    option.removeAttr('selected');
                    list.append(option);
                    hiddenObj.remove();
 
                    selected.val('');
                    list.val('');
                }
            });
 
            hiddenFieldsContainer.append($("<input type=\"checkbox\" style=\"display: none\" name=\"" + fieldname + "\">"));
            if (selectedValues != null && selectedValues.length > 0) {
                for (var i = 0; i < selectedValues.length; i++) {
                    var option = list.find("option[value='" + selectedValues[i] + "']");
                    if(option.length > 0){;
                        var hiddenObj = $("<input type=\"checkbox\" style=\"display: none\" checked=\"checked\" name=\"" + fieldname + "\" id=\"listselect_" + fieldID + "_" + selectedValues[i] + "\" value=\"" + selectedValues[i] + "\" />");
 
                        option.remove();
                        selected.append(option);
                        hiddenFieldsContainer.append(hiddenObj);
                    }
                }
            }
 
            selected.val('');
            list.val('');
 
        });
    };
})(jQuery);;

(function ($) {
  Drupal.Panels = {};

  Drupal.Panels.autoAttach = function() {
    if ($.browser.msie) {
      // If IE, attach a hover event so we can see our admin links.
      $("div.panel-pane").hover(
        function() {
          $('div.panel-hide', this).addClass("panel-hide-hover"); return true;
        },
        function() {
          $('div.panel-hide', this).removeClass("panel-hide-hover"); return true;
        }
      );
      $("div.admin-links").hover(
        function() {
          $(this).addClass("admin-links-hover"); return true;
        },
        function(){
          $(this).removeClass("admin-links-hover"); return true;
        }
      );
    }
  };

  $(Drupal.Panels.autoAttach);
})(jQuery);
;
(function ($) {

$(document).ready(function() {

  // Accepts a string; returns the string with regex metacharacters escaped. The returned string
  // can safely be used at any point within a regex to match the provided literal string. Escaped
  // characters are [ ] { } ( ) * + ? - . , \ ^ $ # and whitespace. The character | is excluded
  // in this function as it's used to separate the domains names.
  RegExp.escapeDomains = function(text) {
    return (text) ? text.replace(/[-[\]{}()*+?.,\\^$#\s]/g, "\\$&") : '';
  }

  // Attach onclick event to document only and catch clicks on all elements.
  $(document.body).click(function(event) {
    // Catch the closest surrounding link of a clicked element.
    $(event.target).closest("a,area").each(function() {

      var ga = Drupal.settings.googleanalytics;
      // Expression to check for absolute internal links.
      var isInternal = new RegExp("^(https?):\/\/" + window.location.host, "i");
      // Expression to check for special links like gotwo.module /go/* links.
      var isInternalSpecial = new RegExp("(\/go\/.*)$", "i");
      // Expression to check for download links.
      var isDownload = new RegExp("\\.(" + ga.trackDownloadExtensions + ")$", "i");
      // Expression to check for the sites cross domains.
      var isCrossDomain = new RegExp("^(https?|ftp|news|nntp|telnet|irc|ssh|sftp|webcal):\/\/.*(" + RegExp.escapeDomains(ga.trackCrossDomains) + ")", "i");

      // Is the clicked URL internal?
      if (isInternal.test(this.href)) {
        // Is download tracking activated and the file extension configured for download tracking?
        if (ga.trackDownload && isDownload.test(this.href)) {
          // Download link clicked.
          var extension = isDownload.exec(this.href);
          _gaq.push(["_trackEvent", "Downloads", extension[1].toUpperCase(), this.href.replace(isInternal, '')]);
        }
        else if (isInternalSpecial.test(this.href)) {
          // Keep the internal URL for Google Analytics website overlay intact.
          _gaq.push(["_trackPageview", this.href.replace(isInternal, '')]);
        }
      }
      else {
        if (ga.trackMailto && $(this).is("a[href^=mailto:],area[href^=mailto:]")) {
          // Mailto link clicked.
          _gaq.push(["_trackEvent", "Mails", "Click", this.href.substring(7)]);
        }
        else if (ga.trackOutbound && this.href) {
          if (ga.trackDomainMode == 2 && isCrossDomain.test(this.href)) {
            // Top-level cross domain clicked. document.location is handled by _link internally.
            _gaq.push(["_link", this.href]);
          }
          else if (ga.trackOutboundAsPageview) {
            // Track all external links as page views after URL cleanup.
            // Currently required, if click should be tracked as goal.
            _gaq.push(["_trackPageview", '/outbound/' + this.href.replace(/^(https?|ftp|news|nntp|telnet|irc|ssh|sftp|webcal):\/\//i, '').split('/').join('--')]);
          }
          else {
            // External link clicked.
            _gaq.push(["_trackEvent", "Outbound links", "Click", this.href]);
          }
        }
      }
    });
  });
});

})(jQuery);
;

