// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
//
/*global $, google*/

function show_spinner(spinner_id) {
    $(spinner_id).show();
}

function hide_spinner(spinner_id) {
    $(spinner_id).hide();
}

function sortable_table(element_id, url, token) {
    $(element_id).tableDnD({
        onDrop: function (table, row) {
            $.ajax({
                type: "POST",
                url: url,
                processData: false,
                data: $.tableDnD.serialize() + '&authenticity_token=' + encodeURIComponent(token)
            });
        }
    });
}

function disable_form_submit(form) {
    var submit = $(form).find('input[type=submit]');
    submit.attr('disabled', 'disabled');
    submit.attr('old_caption', submit.val());
    submit.val('Please wait...');
}

function enable_form_submit(form) {
    var submit = $(form).find('input[type=submit]');
    submit.removeAttr('disabled');
    submit.val(submit.attr('old_caption'));
}

/* for accordion on front page for publications */
function deactivate_sort_buttons() {
    $('#home_publications .sort_links a').removeClass('active');
    $('#home_publications .home_publication_group').hide();
}

function activate_sort_button(button) {
    deactivate_sort_buttons();
    $(button).addClass("active");
}

$.fn.googleMap = function (address, options) {
    var defaults = {
        lat: 44.081996,
        long: -123.0286928,
        zoom: 14,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    options = $.extend(defaults, options || {});

    var center = new google.maps.LatLng(options.lat, options.long);
    var map = new google.maps.Map(this.get(0), $.extend(options, { center: center }));

    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({ address: address }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK && results.length) {
            if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {
                map.set_center(results[0].geometry.location);
                var marker = new google.maps.Marker({
                    position: results[0].geometry.location,
                    map: map
                });
            }
        }
    });
};

$(function () {
    if ($.isFunction($.fn.facebox)) {
        $('a[rel*=facebox]').facebox();
    }
});

jQuery(document).ready(function($) {
  
  $("#section_nav li").hover(
    function () {
			$("#section_nav li.active").addClass('pause');
			$("#section_nav li.active").removeClass('active');
    },
		function() {
			$("#section_nav li.pause").addClass('active');
			$("#section_nav li.pause").removeClass('pause');
		}
  );

  $("#section_nav li.sub").hover(
    function () {
			$(this).addClass("sub-hover");
      $("." + $(this).attr('id')).show();
    },
		function() {
			$(this).removeClass("sub-hover");
      $("." + $(this).attr('id')).hide();
		}
  );
  
	$(".subnav").hover(
    function () {
			$("#section_nav li.active").addClass('pause');
			$("#section_nav li.active").removeClass('active');
			$("#" + $(this).attr('class').split(' ').slice(0)).addClass("sub-hover");
			$(this).show();
    },
		function() {
			$("#section_nav li.pause").addClass('active');
			$("#section_nav li.pause").removeClass('pause');
			$("#" + $(this).attr('class').split(' ').slice(0)).removeClass("sub-hover");
			$(this).hide();
		}
  );
  
  $('#browse_box').corners("12px left");

});
