jQuery(document).ready(function()
{
	$('#dd-name').focus(function() {
		if( this.value == 'Enter your name' ) {
			this.value = '';	
		}
	});
	$('#dd-name').blur(function() {
		if( this.value == '' ) {
			this.value = 'Enter your name';	
		}
	});
	
	$('#overlay-bg-dark').css({
		'height': $(window).height(),
		'width': $(window).width()
	});
	var rda_units = 3;

	$('#drink-choice-overlay #close-popup').click(function(e){
		e.preventDefault();
		$('#drink-choice-overlay').css('display','none');
		$('#overlay-bg-dark').addClass('hide');
	});
	
	$('#drink-totals a').click(function(e){
		e.preventDefault();
		loadPopup( $(this) )
	});
	
	$('#drink-totals p.edit-btn a').live("click", function(e){
		e.preventDefault();
		loadPopup( $(this) );
	});
	
	// clicking on either a + or a -
	$('.drink .quantity a').click(function(e){
		e.preventDefault();
		
		var quantity_div = $(this).parent();
		var day = quantity_div.parent().parent().attr('class');
		
		var dayContainer = $( '#total-' + day );
		var this_id = $(this).parent().parent().attr('id');
	
		if( $(this).attr('title') == '-' ) //subtract
		{
			var currentValue = parseInt( $(this).next().html() );
			if( currentValue > 0 )
			{
				// update the count in the overlay
				currentValue = currentValue - 1;
				$(this).next().html( currentValue );
				
				// check whether the div exists in the day total
				if( $('div.'+ day +'_'+this_id).length != 0 )
				{
					$('div.'+ day +'_'+this_id).html( currentValue );
				}
				else
				{	
					// doesn't exist, so create the div
					$(dayContainer).append('<div class="'+ day +'_'+this_id +'">'+ currentValue +'</div>');
				}
				
				bubbleSort( '#total-' + day + ' div' );
				
				// update the RDA
				var dayDrinks = $('#total-' + day +' div');
				var rda = 0;
				var total_drinks = 0;
				for(var i=0;i<dayDrinks.length;i++)
				{
					var drinkName = $(dayDrinks[i]).attr('class').replace(day+'_','');
					var temp_rda = parseFloat( $('#' + drinkName + ' span.units').html() ) * parseInt($(dayDrinks[i]).html());
					temp_rda = roundNumber( temp_rda, 2 );
					
					total_drinks = total_drinks + parseInt($(dayDrinks[i]).html());
					rda = rda + temp_rda;
					rda = roundNumber( rda, 2 );
				}
				
				//rda = Math.floor((100/rda_units) * rda);

				$('#total-' + day +' p.rda span').html(rda);				
				
				// update the total drinks count
				$('#total-' + day +' p.total-drinks span').html(total_drinks);
			}
			
			if( total_drinks == 0 ) {
				$('#drink-totals #total-'+day+' p.drinks-consumed').removeClass('hide');
				$('#drink-totals p.edit-btn.'+day).addClass('hide');
			}
			totals();
		}
		else if( $(this).attr('title') == '+' ) // add
		{
			var currentValue = parseInt( $(this).prev().html() );
			// update the count in the overlay
			currentValue = currentValue + 1;
			$(this).prev().html( currentValue );
			// check whether the div exists in the day total
			
			
						
			if( $('div.'+ day +'_'+this_id).length != 0 )
			{
				$('div.'+ day +'_'+this_id).html( currentValue );
			}
			else
			{	
				// doesn't exist, so create the div
				$(dayContainer).append('<div class="'+ day +'_'+this_id +'">'+ currentValue +'</div>');
			}
			
			bubbleSort( '#total-' + day + ' div' );
			
			// update the RDA
			var dayDrinks = $('#total-' + day +' div');
			
			var rda = 0;
			var total_drinks = 0;
			
			var total_units = 0;
			
			for(var i=0;i<dayDrinks.length;i++)
			{
				
				var drinkName = $(dayDrinks[i]).attr('class').replace(day+'_','');
				var temp_rda = parseFloat( $('#' + drinkName + ' span.units').html() ) * parseInt($(dayDrinks[i]).html());
				temp_rda = roundNumber( temp_rda, 2 );
				
				total_drinks = total_drinks + parseInt($(dayDrinks[i]).html());
				rda = rda + temp_rda;
				rda = roundNumber( rda, 2 );
			}
			//rda = Math.floor((100/rda_units) * rda);
			
			$('#total-' + day +' p.rda span').html(rda);	
			// update the total drinks count
			$('#total-' + day +' p.total-drinks span').html(total_drinks);
			
			if( total_drinks > 0 ) {		
				$('#total-'+day+' p.drinks-consumed').addClass('hide');
				
				//If the edit button is already there, do not append it
				if( $( '#total-' + day + ' p.edit-btn' ).length == 0 ) {
					$(dayContainer).append('<p class="edit-btn '+ day +'"><a href="'+$('#drink-totals p.drinks-consumed a').attr('href')+'">edit</a></p>');
				}
			}
			totals();
		}
	});
	
	// track the diary interaction
	$('#drink-choice-overlay #close-popup,#drink-totals a,#drink-totals p.edit-btn a,.drink .quantity a').click(function() {
		trackDiaryInteraction();
	});
	// track the PDF download
	$('#drinks-diary .recommended a.pdf').click(function() {
		trackDiaryDownloadInteraction();
	});
	
	function bubbleSort( selector )
	{
		var drinks = $( selector );
		
		for( var i=0; i<drinks.length; i++ )
		{
			var thisValue = parseInt( $( drinks[i] ).html() );
			var nextValue = parseInt( $( drinks[i+1] ).html() );
			if( nextValue > thisValue )
			{
				var nextItem = $( drinks[i+1] ).detach();
				$( drinks[i] ).before( $(nextItem) );				
			}
			
			if( parseInt( $(drinks[i]).html() ) == 0 )
			{
				$(drinks[i]).remove();
			}
		}
	}
	
	function loadPopup( object )
	{
		var day = object.parent().parent().attr('id');
		day = day.replace('total-','');
		
		$('#drink-choice-overlay').removeClass().addClass(day);	
		$('#drink-choice-overlay').css('display','block');
		$('#overlay-bg-dark').removeClass('hide');
		
		// zero the values in the overlay for the new day
		var overlayValues = $('#drink-choice-overlay .count');
		for( var i=0; i<overlayValues.length; i++ )
		{
			$(overlayValues[i]).html('0');
		}
		
		// pick up the current values and re-populate the overlay values
		var savedValues = $( '#' + object.parent().parent().attr('id') +' div' );

		for( var i=0; i<savedValues.length; i++ )
		{
			var drink = $( savedValues[i] ).attr("class");
			var value = $( savedValues[i] ).html();
			drink = drink.split('_');
			drink = drink[1];
			
			$( '#'+ drink + ' div.count' ).html(value);
		}
	}
	
	function totals() {
		var totals = $('.total-drinks span');
		var rda = $('.rda span');
		var drink_sum = 0;
		var rda_sum = 0;
		
		for( i=0; i<totals.length; i++ ) {
			drink_sum += parseFloat( $(totals[i]).html() );
		}
		
		for( i=0; i<rda.length; i++ ) {
			rda_sum += parseFloat( $(rda[i]).html() );
		}
		
		rda_sum = roundNumber( rda_sum, 2 );
		
		$('#t-value').html( drink_sum );
		$('#p-value').html( rda_sum );
	}
	
	function roundNumber(num, dec) {
		var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
		return result;
	}
});
