// JavaScript Document
/*
javascript + jQuery script for checking the user size according the measurements
*/


chart_table_value = '';


$(document).ready(function(){
						   
/*when the user chooses the dress category....they click on the button. we check for the value on the drop down list that is the SAME as the size chart CLASS name*/						   
$('#submit_make').click(function(){
								 chart_table_value = $('#dress_make').val();
								 $('table').hide();								
								 $("#second_form_pop_link").delay(200).queue(function(){ 
													 $(this).trigger("click"); 
													 $(this).dequeue(); 
													 });
								 
								 $('div.second_form_pop div').hide();
								 $('.'+chart_table_value).show();
								 $('div.inputs_div').show();
								 $('div.display_size').show();
								 $('.measurements').val('');
								 $('#your_size_response').html('Please enter your measurements');
								 $('#recommended_size_response').html('');
								 $('div.important_info').show();
/*global variables*/
check_size_from = '';
highest_allowed_bust_size = parseFloat('0');
highest_allowed_waist_size = parseFloat('0');
highest_allowed_hips_size = parseFloat('0');
highest_recommended_size_position = 1;
highest_recommended_size = 'Not available';

								 });



$(".already").fancybox({
							   /*This function is the one that is triggered to make the pop up window show*/
							   'titlePosition': 'inside',
							   'speedIn': '200',
							   'transitionIn': 'fade',
							   'transitionOut': 'none'
							   });





	/*we collect the user input on key up  then call the check_the_highest function the checks for the highest value between the input values*/
	$('#user_bust_size').keyup(function(){
										check_x_current_size_position();
										highest_recommended_size_position = 1; /*reset the recommemded size after*/
										final_input_check(); /*we check if any of the user input measurements is greater that the available max*/
										});
	$('#user_waist_size').keyup(function(){
										 check_x_current_size_position();
										 highest_recommended_size_position = 1;
										 final_input_check(); /*we check if any of the user input measurements is greater that the available max*/
										 });
	$('#user_hips_size').keyup(function(){
										check_x_current_size_position();
										highest_recommended_size_position = 1;
										final_input_check(); /*we check if any of the user input measurements is greater that the available max*/
										});





$('table.'+chart_table_value+' td:nth-child(1)').click(function(event){
		event.preventDefault(); /*Prevent the hyperlink to perform default behavior*/
		var your_size = parseFloat($('#user_'+check_size_from+'_size').val());
		if (isNaN(your_size)){
		var your_size = parseFloat('0.0'); /*if the user enters values that are not numbers we assume a value 0*/
		}
		var $td= $(this).closest('tr').children('td'); /*values of that row in an array*/
		var array_size = $td.size();
		var $actual_size_array = $('table.'+chart_table_value+' td:nth-child(1)').closest('tr').children('td'); /*get the size value into an array*/		
		var start_here = 1;
		var lower_bust_size = parseFloat('0.0');
		
		
		if(your_size>lower_bust_size){
			var highest_size = parseFloat($td.eq(array_size-1).text());
			if(check_size_from == 'bust'){ highest_allowed_bust_size = parseFloat($td.eq(array_size-1).text()); }
			if(check_size_from == 'waist'){ highest_allowed_waist_size = parseFloat($td.eq(array_size-1).text()); }
			if(check_size_from == 'hips'){ highest_allowed_hips_size = parseFloat($td.eq(array_size-1).text()); }
			
			
			
			if (your_size > highest_size){
				$('#your_size_response').hide();
				$('#your_size_response').html('<strong>'+highest_size +' is highest on '+ check_size_from +' size measurements !</strong> <br/>');
				$('#your_size_response').fadeIn();
				$('#recommended_size_response').html('<strong>---</strong>');
				}else{
					/*all is ok we can now check for size position on chart*/
					$('#recommended_size_response').html('Checking.......');
					while(start_here < array_size){
						$('#your_size_response').html('Checking where '+your_size+ ' lies on '+check_size_from+' row');
						var upper_bust_size = parseFloat($td.eq(start_here).text());
						var upper_bust_size = parseFloat($td.eq(start_here).text());
						if(start_here == 1){
							var lower_bust_size = parseFloat('0.0');					
							if(upper_bust_size >= your_size){
								var actual_size = $actual_size_array.eq(start_here).text();
								final_recommended_size(start_here);
								start_here = array_size;
								}
								}else if(start_here >1){
									var lower_bust_size = parseFloat($td.eq(start_here-1).text());	
									if(upper_bust_size >= your_size){
										var actual_size = $actual_size_array.eq(start_here).text();
										final_recommended_size(start_here);
										start_here = array_size;
										}
										}
										start_here++;
										}//end of while
										
					}
				
			}else{
			//$('#your_size_response').html('Please valid '+check_size_from+' size measurements !<br/>');
			
			}
			
		});/*end of click function*/



function check_x_current_size_position(){
	/*initial click on each row at a time while we check for the highest size according to each measurement*/
	check_size_from = 'bust';
	$('table.'+chart_table_value+' .bust').trigger('click');
	
	check_size_from = 'waist';	
	$('table.'+chart_table_value+' .waist').trigger('click');
	
	check_size_from = 'hips';
	$('table.'+chart_table_value+' .hips').trigger('click');

	}



function final_recommended_size(position_value){
	/*function that checks for the highest size to recommend*/
	if(position_value >= highest_recommended_size_position){
		highest_recommended_size_position = position_value;		
		var $actual_size_array = $('table.'+chart_table_value+' td:nth-child(1)').closest('tr').children('td');
		var actual_size = $actual_size_array.eq(highest_recommended_size_position).text();
		$('#your_size_response').html('According to your measurements we recommend: <br/>');
		$('#recommended_size_response').hide();
		$('#recommended_size_response').html('<strong>SIZE: '+actual_size+'</strong>');
		$('#recommended_size_response').fadeIn();
		}else{
			var $actual_size_array = $('table.'+chart_table_value+' td:nth-child(1)').closest('tr').children('td');
			var actual_size = $actual_size_array.eq(highest_recommended_size_position).text();
			$('#your_size_response').html('According to your measurements we recommend: <br/>');
			$('#recommended_size_response').hide();
			$('#recommended_size_response').html('<strong>SIZE: '+actual_size+'</strong>');		
			$('#recommended_size_response').fadeIn();
			}
	}/*end of final_recommended_size function*/


/*check if there are any values that are greater than max measurements in the charts*/

function final_input_check(){
	var your_size = parseFloat($('#user_bust_size').val());
	if (isNaN(your_size)){
		var your_size = parseFloat('0.0'); /*if the user enters values that are not numbers we assume a value 0*/
		}
	if(your_size > highest_allowed_bust_size){
		$('#your_size_response').hide();
		$('#your_size_response').html('<strong>'+highest_allowed_bust_size +' is highest on bust size measurements !</strong> <br/>');
		$('#your_size_response').fadeIn('fast');
		$('#recommended_size_response').html('<strong>---</strong>');
		}	
	
	var your_size = parseFloat($('#user_waist_size').val());
	if (isNaN(your_size)){
		var your_size = parseFloat('0.0'); /*if the user enters values that are not numbers we assume a value 0*/
		}
	if(your_size > highest_allowed_waist_size){
		$('#your_size_response').hide();
		$('#your_size_response').html('<strong>'+highest_allowed_waist_size +' is highest on waist size measurements !</strong> <br/>');
		$('#your_size_response').fadeIn('fast');
		$('#recommended_size_response').html('<strong>---</strong>');
		}	
	
	var your_size = parseFloat($('#user_hips_size').val());
	if (isNaN(your_size)){
		var your_size = parseFloat('0.0'); /*if the user enters values that are not numbers we assume a value 0*/
		}
	if(your_size > highest_allowed_hips_size){
		$('#your_size_response').hide();
		$('#your_size_response').html('<strong>'+highest_allowed_hips_size +' is highest on hips size measurements !</strong> <br/>');
		$('#your_size_response').fadeIn('fast');
		$('#recommended_size_response').html('<strong>---</strong>');
		}
	
	
	}/*end of final_input_check*/






});
