function resetClearOnClick(prefix) {
	$(prefix + " input.clearonclick").each(function() {
		$(this).val($(this).attr('defaultvalue'));	
		$(this).attr('status', 'notclicked');
	});
	
	$(prefix + " textarea.clearonclick").each(function() {
		$(this).html($(this).attr('defaultvalue'));
		$(this).attr('status', 'notclicked');
	});
}

function showTab(tabhash) {
	var tab = $("a[href="+tabhash+"]").parent();
	tab.parent().find("li").removeClass("active"); //Remove any "active" class
	tab.addClass("active"); //Add "active" class to selected tab
	tab.parent().next().find(".tab_content").hide(); //Hide all tab content

	var activeTab = tab.find("a").attr("href"); //Find the href attribute value to identify the active tab + content        
	
	$(activeTab).fadeIn(); //Fade in the active ID content
}


$(document).ready(function() {
	
	$("input.clearonclick").each(function() {
		$(this).val($(this).attr('defaultvalue'));	
		$(this).attr('status', 'notclicked');
	});
	
	$("input.clearonclick").live('click', function() {
		$(this).attr('status', 'clicked');
		if($(this).val() == $(this).attr('defaultvalue')) {
			$(this).val("");	
		}
	});
	
	$("input.clearonclick").live('keypress', function() {
		if($(this).val() == $(this).attr('defaultvalue')) {
			$(this).val("");	
		}
		$(this).attr('status', 'clicked');												  
	});
	
	$("textarea.clearonclick").each(function() {
		$(this).html($(this).attr('defaultvalue'));	
		$(this).attr('status', 'notclicked');
	});
	
	$("textarea.clearonclick").live('click', function() {
		$(this).attr('status', 'clicked');
		if($(this).html() == $(this).attr('defaultvalue')) {
			$(this).html("");	
		}
	});
	
	$("textarea.clearonclick").live('keypress', function() {
		if($(this).html() == $(this).attr('defaultvalue')) {
			$(this).html("");	
		}
		$(this).attr('status', 'clicked');												  
	});
});

// SEARCH

var searchTimeout;

$(document).ready(function() {
	
	var canCloseSearch = true;
	
	$("#s").bind('keypress', function() {
		clearTimeout(searchTimeout);
		searchTimeout = setTimeout(doSearch, 300);	
		$("#s").addClass("searching");	
	});
	
	$("#search_results h3").click(function() {
		if($("#search_results").is(":visible"))
			$("#search_results").fadeOut();
	});
	
	$("#search_results").bind('mouseout', function() {
		canCloseSearch = true;
	});
	
	$("#search_results").bind('mouseover', function() {
		canCloseSearch = false;
	});
	
	$(document).click(function(e) {
		if(canCloseSearch)
			$("#search_results").fadeOut();
	});
	
});

function doSearch() {
	var terms = $("#s").val();
	if(terms == "" || terms.length < 3) {
		$("div#search_results").fadeOut();
		return false;
	}
	$.post("/search/ajax_search", {terms: terms}, function(data) {
		if(data != "") {
			$("#search_results div.results").html(data);
			$("#search_results").fadeIn();
			$("#s").removeClass("searching");
		}
		else {
			$("#search_results").fadeOut();
		}
		
	});
}

// Sign in

var canCloseSignIn = false;

$(document).ready(function() {
						   
	$("div#loginbar div.userinfo span.leftcol").click(function() {
	
		if($("div#loginbar div.userinfo").hasClass("userinfo_down")) {
			//signInOut();
		}
		else {
			signInOver();
		}
	});
	
	var config = {
		 sensitivity: 1, // number = sensitivity threshold (must be 1 or higher)
		 interval: 250, // number = milliseconds for onMouseOver polling interval
		 over: signInOver,
		 timeout: 250, // number = milliseconds delay before onMouseOut
		 out: function() { }
	};
	
	$("div#loginbar div.userinfo").hoverIntent(config); 
	
	$("div#loginbar div.userinfo input#headersignin").click(function() {
		var username = $("div#loginbar input[name=username]").val();
		var password = $("div#loginbar input[name=password]").val();
		var rememberme = $("div#loginbar input[name=rememberme]").val();
		$("div#loginbar div.dropdown").html("<img src='http://www.heartspring.org/images/master/ia_load.gif' /> <strong>Logging you in, please wait...</strong>");
		//setTimeout(function() { window.location = '/register/login'; }, 5000); //just in case we get stuck in a perpetual load for some reason. - RD 
		$.post("/register/login_ajax", {username: username, password: password, rememberme: rememberme}, function(data) {
			if(data == "success") {
				//Don't just reload if we're in the register controller, that could be bad.
				if(window.location.href.indexOf('/register/') != -1)
					window.location = "/";
				else
					window.location.reload();
			}
			else
				window.location = '/register/login';
		});
	
	});
	
	$("div#loginbar div.userinfo input[name=password]").bind('keydown', function(e) {
		if(e.keyCode == 13) {
			$("div#loginbar div.userinfo input#headersignin").trigger('click');
			return false;
		}
	});
	
	$("div#loginbar div.userinfo").bind('mouseover', function() {
		canCloseSignIn = false;														  
	});
	
	$("div#loginbar div.userinfo").bind("mouseout", function() {
		canCloseSignIn = true;														 
	});
	
	$("body").click(function() {
		if(canCloseSignIn)
			signInOut();
								   
	});

});

function signInOver() {
	$("div#loginbar div.userinfo").addClass("userinfo_down");
	$("div#loginbar div.userinfo div.dropdown").show();
	canCloseSignIn = false;

}

function signInOut() {
	$("div#loginbar div.userinfo").removeClass("userinfo_down");
	$("div#loginbar div.userinfo div.dropdown").hide();	
}

function signInReadyOut() {
	canCloseSignIn = true;	
}

//FEEDBACK Button

$(document).ready(function() {

	$("div#feedback").click(function() {
	
		if($(this).hasClass("feedback_down")) {
			$(this).removeClass("feedback_down");
			$(this).find("#feedback_menu").hide();
		}
		
		else {
			$(this).find("#feedback_menu").show();
			$(this).addClass("feedback_down");
		}
	
		return false;
	
	});
	
	$("div#feedback div#feedback_menu").click(function() {
	
		if($("div#feedback").hasClass("feedback_down"))
			return false;
	
	});
	
	$(document).click(function() {
	
		if($("div#feedback").hasClass("feedback_down"))
			$("div#feedback").trigger('click');
	
	});
	
	$("div#feedback input#feedback_send").click(function() {
	
		//Collect info.
		var email = $("div#feedback input#feedback_email").val();
		var comments = $("div#feedback textarea#feedback_comments").val();
		var page = $("div#feedback input#feedback_page").val();
		
		$("div#feedback div#feedback_menu").html("<img src='/images/master/ia_load.gif' /> Sending feedback...");
		
		$.post("/welcome/submit_feedback", {email: email, comments: comments, page: page}, function(data) {
		
			$("div#feedback div#feedback_menu").html(data);
		
		});
	
	});

});

/*!
 * liScroll 1.0
 * Examples and documentation at: 
 * http://www.gcmingati.net/wordpress/wp-content/lab/jquery/newsticker/jq-liscroll/scrollanimate.html
 * 2007-2010 Gian Carlo Mingati
 * Version: 1.0.2 (30-MARCH-2009)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * Requires:
 * jQuery v1.2.x or later
 * 
 */


jQuery.fn.liScroll = function(settings) {
		settings = jQuery.extend({
		travelocity: 0.07
		}, settings);		
		return this.each(function(){
				var $strip = jQuery(this);
				$strip.addClass("newsticker")
				var stripWidth = 0;
				var $mask = $strip.wrap("<div class='mask'></div>");
				var $tickercontainer = $strip.parent().wrap("<div class='tickercontainer'></div>");								
				var containerWidth = $strip.parent().parent().width();	//a.k.a. 'mask' width 	
				$strip.find("li").each(function(i){
				stripWidth += jQuery(this, i).outerWidth(true); // thanks to Michael Haszprunar
				});
				$strip.width(stripWidth);			
				var totalTravel = stripWidth+containerWidth;
				var defTiming = totalTravel/settings.travelocity;	// thanks to Scott Waye		
				function scrollnews(spazio, tempo){
				$strip.animate({left: '-='+ spazio}, tempo, "linear", function(){$strip.css("left", containerWidth); scrollnews(totalTravel, defTiming);});
				}
				scrollnews(totalTravel, defTiming);				
				$strip.hover(function(){
				jQuery(this).stop();
				},
				function(){
				var offset = jQuery(this).offset();
				var residualSpace = offset.left + stripWidth;
				var residualTime = residualSpace/settings.travelocity;
				scrollnews(residualSpace, residualTime);
				});			
		});	
};
