


function myDateFormat ( myDate )
{
	return myDate.getDate()+'/'+(myDate.getMonth()+1)+'/'+myDate.getFullYear();
}

/********
 *	tools
 ********/

;(function ($){
	$.fn.bmiCalc = function ( mass , height , unit ){
		unit = unit || 'SI'; // 'in , ft;
		var para = 1;
		var root = this;
		$( mass+','+ height ).keypress(function( e ){
			if ( e.which >= 48 && e.which <= 57 || e.which == 8 || e.which == 0 || e.which == 46 ){
				switch ( $( unit ).val() ) {
					case 'in': para = 703; break;
					case 'ft': para = 4.88; break;
					default : para = 1; break;
				}

				return this;
			}else{return false;}

		});
		$( mass+','+ height ).keyup(function( e ){
			var fig = ($(mass).val()/($(height).val()*$(height).val())*para).toFixed(2);
			if ( fig < 16.5 ) { str ='Severely underweight'; }
			else if ( 16.5 <= fig && fig <= 18.4 ) { str = 'Underweight'; }
			else if ( 18.5 <= fig && fig <= 24.9 ) { str = 'Congratulation! You have a normal BMI'; }
			else if ( 25 <= fig && fig <= 30 ) { str = 'Overweight'; }
			else if ( 30.1 <= fig && fig <= 34.9 ) { str = 'Obese Class I'; }
			else if ( 35 <= fig && fig <= 40 ) { str ='Obese Class II'; }
			else if ( 40 <= fig ) { str='Obese Class III'; }
			
			var result = '<span class="red" style="text-transform:uppercase;font-weight:bold;" > Your BMI :</span> <span style="border:1px solid #CCC;padding:2px 5px;"> '+fig + '</span><br/><div class="hr"></div><div class="clear"></div>' + str;
			root.find( '#result' ).html( result );
		});
	}

	$.fn.ovulationCalc =function ( date , menstruation ){
		var root = this;
		$( date+','+menstruation ).change(function(){
			c();
		}).keyup(function(){c();});
		$( menstruation ).keypress(function(e){
			if ( e.which >= 48 && e.which <= 57 || e.which == 8 || e.which == 0 || e.which == 46 )
			{
				return true;
			}
			else {return false;}
			
		});
		function c( ){
			var datestr = $( date ).val();
			var datearr = datestr.split('/');
			datestr = datearr[2]+'/'+datearr[1]+'/'+datearr[0];
			var myDate = new Date(datestr);
			var m = $( menstruation ).val();
			if ( m > 28 ) m  = Math.round( m * 0.85 * (2 / 3));
			else m  = Math.round( m / 2 );
			if ( myDate.setDate(myDate.getDate()+m) )
			{
				var d0 = myDateFormat( myDate );
				myDate.setDate(myDate.getDate()-3);
				var d1 = myDateFormat( myDate );
				myDate.setDate(myDate.getDate()+7);
				var d2 = myDateFormat( myDate );
				var result = '<div style="margin:0px 20px;font:normal 9pt tahoma;text-align:center;" >Your next ovulation will most likely occur on:<br/><span class="red">'+d0+'</span><br/>Your fertile days are between <br/><span class="red">'+d1+' to '+d2+'</span></div>';
			}else{
				var result = '<div style="margin:0px 20px;text-align:center;font:normal 9pt tahoma;" >Please Check Your input and Calculate Again<span class="red"></span>';
			}
			$( root ).find('#result').html(result);
		}

	}
	$.fn.dueDateCalc =function ( date , menstruation , luteal ){
		var root = this;
		$( date+','+menstruation+','+luteal ).change(function(){
			c();
		}).keyup(function(){c();});
		$( menstruation+','+luteal ).keypress(function(e){
			if ( e.which >= 48 && e.which <= 57 || e.which == 8 || e.which == 0 || e.which == 46 )
			{
				return true;
			}
			else {return false;}
			
		});
		function c( ) {
			var datestr = $( date ).val();
			var datearr = datestr.split('/');
			datestr = datearr[2]+'/'+datearr[1]+'/'+datearr[0];
			var myDate = new Date(datestr);
			var m = $( menstruation ).val();
			var l = $( luteal ).val();

			if ( myDate.setDate(myDate.getDate()+(m-l+266)) )
			{
				var d0 = myDateFormat( myDate );
				var result = '<div style="margin:0 23px;font:normal 9pt tahoma;text-align:center;" >Your DueDate will most likely occur on:<br/><span class="red">'+d0+'</span></div>';
			}else
			{
				var result = '<div style="margin:0px 23px;font:normal 9pt tahoma;text-align:center;" >Please Check Your input and Calculate Again<span class="red"></span>';
			}

			$( root ).find('#result').html(result);
		}
	}
})(jQuery);
