// JavaScript Document

/* -----------------------------------------------------------
		I.		GLOBAL VARIABLE
----------------------------------------------------------- */

	/* HOME FEATURE */
	var home_feature_index = 1;
	var home_feature_end_index = 4;
	var home_feature_interval = 0;
	var last_item_clicked = 0;
	var counter = 0;
	var inProgress = false;
	var url_date, date_input, hidden_date_input_name, hidden_date_input;

/* -----------------------------------------------------------
		II.		DOCUMENT-READY FUNCTIONS
----------------------------------------------------------- */

$(document).ready(function() {

	/* -----------------------------------------------------------
		@FORMS
	----------------------------------------------------------- */

	/* @FORMS @DATE */
	(function() {
		if($('[type=date]').length > 0) {
			$('[type=date]').dateinput({

				// a different format is sent to the server
				change: function() {
					
					// get value to be sent to server
					url_date = this.getValue('yyyy-mm-dd');

					// get name of hidden field related to input
					hidden_date_input_name = this.getInput().attr('id');

					// get handle on hidden field
					hidden_date_input = $('input[name="' + hidden_date_input_name + '"]');

					// update hidden field value
					hidden_date_input.attr('value', url_date);
				}
			});
		}
	})();

    /* SELECT DROPDOWN - CHANGE TEXT AND REDIRECT IF HAS HREF ATTRIBUTE */
    $('.select')
        .delegate('select', 'change', function(e) {
            // if option element has a link attribute, redirect.  Otherwise just change value
            var optionLink = '';
                optionLink = $(this)
                    .children('option:selected')
                    .attr('link');

            // update span text
            var selectValue = '';
            selectValue = $(this)
                .children('option:selected')
                .text();
            $(this)
                .parent('.select')
                .children('span')
                .text(selectValue);

            // redirect if has href attribute
            if (optionLink) {
                window.location.href = optionLink;
                e.preventDefault();
            }
        });
    
    // if select has item checked on page load, make it display this value.
    $('select').each(function() {
        // update span text
        var selectValue = '';
        selectValue = $(this)
            .children('option:selected')
            .text();
        $(this)
            .parent('.select')
            .children('span')
            .text(selectValue);
    });


    /* TOGGLE ENTRY SNIPPETS */
    $('.expand-contract').click(function(e) {
        // get id of element to expand contract
        var clickedLink = $(this);
        var itemId = clickedLink.attr('rel');
        var itemWrapper = $('.item#' + itemId);

        // toggle classes
        itemWrapper.toggleClass("expanded contracted");

        // toggle content
        $('.item#' + itemId + ' .expandable')
            .slideToggle('slow', function() {
                // callback
            });
        e.preventDefault();
    });

    /* EXPAND / CONTRACT ALL ITEMS ON TOGGLE PAGE */
    $('.expand-all').click(function(e) {
        // change 'selected' view
        $('.list-views li, .m_sidebar-list-views li')
            .removeClass('selected');
        $('.detail-view')
            .addClass('selected');
        // change wrapper class
        $('.item')
            .removeClass('expanded contracted')
            .addClass('expanded');
        // show content area
        $('.item .expandable')
            .show();
        // hide map view
        $('#map_canvas')
            .removeClass('map-visible');
        e.preventDefault();
    });

    $('.contract-all').click(function(e) {
        // change 'selected' view
        $('.list-views li, .m_sidebar-list-views li')
            .removeClass('selected');
        $('.list-view')
            .addClass('selected');
        // change wrapper class
        $('.item')
            .removeClass('expanded contracted')
            .addClass('contracted');
        // show content area
        $('.item .expandable')
            .hide();
        // hide map view
        $('#map_canvas').removeClass('map-visible');
        e.preventDefault();
    });

    $('.geographic-view').click(function(e) {
        $('.list-views li, .m_sidebar-list-views li')
            .removeClass('selected');
        $('.geographic-view')
            .addClass('selected');
        $('#map_canvas')
            .addClass('map-visible');
        e.preventDefault();
    });

    /* GENERIC TOGGLE FUNCTION */
    $('.toggle').click(function(e) {
        // get id of element to expand contract
        var clickedLink = $(this);
        var itemId = clickedLink.attr('rel');
        var expandable = $('#' + itemId);

        // change arrow orientation
        clickedLink.toggleClass("expanded contracted");

        // toggle classes
        expandable
            .slideToggle('slow', function() {
                // callback
            });
        e.preventDefault();
    });

    /* SEARCH */
		
	//Values for link and form action need to be set on page load in case user uses back button on browser and text is still in input field
	var gs_search_term = $('#global_search input').val();

	//Update link url
	$('#global_search a')
		.attr('href', '/search/q/' + gs_search_term);

	//Update form action so when users presses "Enter" action will direct to appropriate url
	$('#global_search')
		.attr('action', '/search/q/' + gs_search_term);
	
	//Update link href everytime user enters a character
	$('#global_search input')
		.live('keyup', function(e) {
			gs_search_term = $(this).val();
			gs_search_term = gs_search_term.replace(' ' , '+');

			//Update link url
			$('#global_search a')
				.attr('href', '/search/q/' + gs_search_term);
			//Update form action so when users presses "Enter" action will direct to appropriate url
			$('#global_search')
				.attr('action', '/search/q/' + gs_search_term);
			
			//If the users presses "Enter" go ahead and redirect them to the search page
			if(e.keyCode == 13) {
				$('#global_search').submit();
			}
		});
	$('form#global_search')
		.submit(function(e) {
			window.location.href = '/search/q/' + gs_search_term;
			e.preventDefault();
		});

}); //End document.ready

