$(document).ready(function(){

	// ----------------------------- nav collapsibles ----------------------------- //

	$(function(){
		
		$(".collapse-next").click( function(){
			$(this).next().slideToggle( 200 );
		});
		
		$("a.close-button").click(function(){
			$(this).parent().fadeOut(200);
		});
	});
	
	// ------------------------------ download inset ------------------------------ //
	
	$(function(){
		
		$( "a[ id^='toggle' ]" ).click( function(){
			var parts=		$(this).attr( "id" ).split( ":" );
			var targetId=	parts[ parts.length - 1 ];
			$("#" + targetId).slideToggle( 300 );
			$("#" + targetId).find(".focus-on-me").focus();
			
			//toggle the middle parameter
			if ( parts.length > 2 ){
				var control = parts[ parts.length - 2 ];
				$("#" + control).toggle();
			}
		});
		
	});
	
	// ------------------------------- sub menu ---------------------------------- //
	
	$("li.has-submenu").hover(
		function(){
			$(this).find("ul.submenu").show();
			$(this).find("a.first").addClass("hovered");
		},
		function(){
			$(this).find("ul.submenu").hide();
			$(this).find("a.first").removeClass("hovered");
		});
	
	// ------------------------------- faq container ----------------------------- //
	
	$(".faq-question").click(function(){
		$(this).toggleClass("active");
		$(this).next().slideToggle(200);
	});
	
	// ------------------------------ radio buttons ------------------------------ //
	
	$(function(){
	
		$(".radio-block").click( function(){
			$(this).find( "input[type='radio']" ).attr( "checked", "checked" );
			$(this).parent().parent().find( "div.selected" ).removeClass("selected");
			$(this).addClass( "selected" );
		});
		
		$(".check-block").click( function(){
			//clear all checkboxes
			$(".check-block").find(".checkbox").removeClass( "checked" );
			
			//check the right box & hidden field
			$(this).find(".checkbox").addClass( "checked" );
			$("#hidden").val( $(this).attr("id") );
			
			//append validation classes for js validation
			if ( $(this).attr("id") == "yes" )
			{
				$("[name='email']").addClass("required");
				$("[name='email']").addClass("email");
			}
			else
			{
				$("[name='email']").removeClass("required");
				$("[name='email']").removeClass("email");
			}
			
			//toggle the sub-options
			if ( $(this).hasClass( "networks" ) && $(this).find(".checkbox").hasClass( "checked" ) ){
				$("#networks").slideDown( 200 );
			}
			else {
				$("#networks").slideUp( 200 );
			}
			
			//toggle the sub-options
			if ( $(this).hasClass( "have-player" ) && $(this).find(".checkbox").hasClass( "checked" ) ){
				$("#have-player").slideDown( 200 );
				$("#add-player-button").hide();
				$("#have-player-button").show();
			}
			else {
				$("#have-player").slideUp( 200 );
			}
			
			//toggle the sub-options
			if ( $(this).hasClass( "add-player" ) && $(this).find(".checkbox").hasClass( "checked" ) ){
				$("#add-player").slideDown( 200 );
				$("#have-player-button").hide();
				$("#add-player-button").show();
			}
			else {
				$("#add-player").slideUp( 200 );
			}
		})
		
	});
	
	// ------------------------ check blocks -------------------------------------------- //
	
	$(".togglebox").click( function(){
		//toggle checkblock on/off
		if ($(this).find(".checkbox").hasClass("checked")){
			$(this).find(".checkbox").removeClass("checked");
		} else {
			$(this).find(".checkbox").addClass("checked");
		}
		
		//toggle name in hidden field
		var root = $(this).find(".checkbox").attr("id");
		var input = $("[name='" + root + "']"); 
		input.val( !input.val() );
	});
	
	// ------------------------- tips / control blocks highlight ------------------------- //
	
	var hoverCorrelateId;
	
	$( "li[ class^='highlight' ]" ).hover(
		function(){
			var classes=		$(this).attr("class").split(" ");
			var id=				classes[ 0 ].split(":");
			hoverCorrelateId=	id[ 1 ];
			$( "#" + hoverCorrelateId ).addClass( "hover" );
		},
		function(){
			$( "#" + hoverCorrelateId ).removeClass( "hover" );
		}
	)

	// ----------------------------- download form submit ------------------------------- //
	
	$("#download_form").validate( {
							errorLabelContainer: "#email_errors"
	});

	// ----------------------------- home page tabs ------------------------------- //

	$(function(){
	
		var targetContainer=		$( "#product_info" );
		var navContainer=			$( "#product_nav" );
	
		navContainer.find( "a" ).click( function(){
			if ( navContainer.find( "li > a" ).hasClass( "selected" ) ) {
				navContainer.find( "li > a" ).removeClass( "selected" );
			}
			
			targetContainer.children( "div" ).hide();
			targetContainer.children( "div#" + $(this).attr("id") ).show();
			
			$(this).addClass( "selected" );
		});
	});
	
	// ------------------------------ misc functions ----------------------------- //
	
	$(function(){
		//$( "ul.sf-menu" ).superfish( { autoArrows : false } );
		$( ".std-round" ).corner( "8px round" );
		$( ".top-round" ).corner( "8px round tl tr" );
		$(".top-sm-round").corner("4px round tl tr");
		$( ".left-round" ).corner( "8px round tl bl" );
		$( ".right-round" ).corner( "8px round tr br" );
		$(".bottom-round").corner( "8px round bl br" );
		$( ".hide-on-load" ).hide();
		
		if ( $("#user_timezone").size() > 0 ){
			var today = new Date();
			var timezoneOffset = today.getTimezoneOffset();
			$("#user_timezone").val(timezoneOffset);
		}
	});
});