  
function format_value(input)
{          
    if (input.toString().length == 0) return input;
    
    var dec = 2;
    var result = "";
    var dot = '.';
        
    if (isNaN(parseFloat(input))) 
    {
        return "0.00";
    }
     parseFloat ("0").toFixed (dec);

    input = (input < 0) ? -input : input;    
    if (input.toString().indexOf(dot) == -1) 
    {    	
    	return parseFloat(input + ".00").toFixed (dec);        
    }

    inputStr = input.toString();     
    var idx = inputStr.indexOf(dot);
    result = inputStr.substring(0, idx);
    var str1 = inputStr.substring(idx + 1);
    
    if (str1.toString().length == 1)
    {
    	str1 += "0";
    }

    if ((str1 >= 0) && (str1 <= 14))
    {
        result = result + ".00";
    }
    
    if ((str1 >= 15) && (str1 <= 30))
    {
        result = result + ".50";
    }
    
    if (str1 != 50)
    {    
    	if ((str1 >= 31) && (str1 <= 60))
    	{
	    result = Number(result) + 1;
	    result += ".00";
    	}
    }
    else
    {
        result = result + ".50";
    }
    
    if (str1 > 60)
    {
        alert("Invalid input. Please enter less than .60 minutes");       
	result += ".00";
    }
         
    return parseFloat(result).toFixed(dec);
    
}

var validChars = function(value) 
    { 
        var result = true; 
        // unwanted characters
        var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";

        for (var i = 0; i < value.length; i++) {
            if (iChars.indexOf(value.charAt(i)) != -1) {
                return false;
            }
        }
        return result;
    }
    
 var noURL = function(value)
    {       
        if (value.length == 0) return true;
        var url_regex = /https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/;
        if (url_regex.test(value))
        {
            return false;
        }
        return true;
    }    
    
$.validator.addMethod("validChars", function(value, element) {  return validChars(value);}, 'Please enter a valid character.');    
$.validator.addMethod("noURL", function(value, element) {  return noURL(value);}, 'Please do not enter any url.');    
 
$(document).ready(function() {               

	$('.recordedtime').blur(function(event) {			
		event.target.value = format_value(event.target.value);
    	});    
    	
    	$('#ChangeInTutoringStatus').click(function(event) {
    	    if (event.target.checked == true)
    	    {    	         
    	        $("#TutoringStatus").show();
    	    }
    	    else
    	    {    	         
    	        $("#TutoringStatus").hide();
    	    }
    	}); 
    	
        $('#NewContactInfo').click(function(event) {
    	    if (event.target.checked == true)
    	    {    	        
    	        $("#ContactInfo").show();  
    	    }
    	    else
    	    {    	         
    	        $("#ContactInfo").hide();  
    	    }
    	});    
    	
    	$("body").bind("keypress", function(evt) 
	{ 
	    var charCode = (evt.which) ? evt.which : window.event.keyCode; 
	    return (charCode != 13);	  
	});
    	
    	
    	
        $("#monthlyReport").validate({             
	    rules: 
	    { 
	    	LearnerName: 
	    	{	    
	      	    required:true,	    
	            minlength:2,	    	             
	            validChars:true	    	      	    
	        },
		TutorName: 
	    	{	    
	      	    required:true,	    
	            minlength:2,	    	              
	            validChars:true	    	      	    
	        },	
		MaterialsMethods: 
	    	{	    	      	   	    	              
	            noURL:true	    	      	    
	        },		        
	        NoOfSessions:   "required"	      	      
	    }
	  }); 
	  	  	 
	  
	$("#monthlyReport")[0].LearnerName.focus(); 
	$("#TutoringStatus").hide(); 
	$("#ContactInfo").hide();   
  });
   


   
   
 function validate_report()
    {                 
        var enteredTime = 0;
        var week = new Array(5);
        var timetable = document.getElementById("timetable");
        for (i = 1; i <= 7; i++)
        {
            for (j = 2; j <= 6; j++)
            {
                var data = timetable.rows[i].cells[j].firstChild.value;
                if (data.trim().length > 0)
                {
                    if (!isNumeric(data))
		    {
		        alert("'" + data + "'  is not a valid number. Please enter a positive number");		         
		        return false;
		    }
		    else
		    {
		       
		        data = parseFloat(data);
		         
		        if (data < 0)
		        {
		            alert("'" + data + "'  is negative. Please enter a positive number");
		            return false;
		        }
		         
		        if (data > 12)
		        {
		            alert("'" + data + "'  is not valid. Please enter a positive number for hours and decimal place followed by minutes. For eg: 40 minutes = 0.4");
		            return false;
		        }
		        
		        
		        if ((i < 3) && (data > 0))
		        {		            
		            week[j - 2] = 1;
		        }
		         
		        
		        var fracPart = roundNumber(Mod(data, 1.0),2); 		        
		        
                        if (fracPart > 0.6)
                        {
                            alert("Invalid value " + data + ". Please enter value in hours and minutes");
                            return false;
                        }
                                                                         
		    }
		    enteredTime = 1;
                }
            }
        }
        
        if (enteredTime == 1)
        {
            if (noOfSessions == 0)
            {
                alert("The number of sessions is zero.");
                return false;
            }
            
            var weekCount = 0;
            for (k=0; k<5; k++)
            {
                if (week[k] == 1)
                {
                    weekCount = weekCount + 1;
                }
            }
            if (noOfSessions < weekCount)
            {
                alert("Please enter the correct number of sessions.");
                return false;
            }             
        }
        
        if (check_url(document.monthlyReportForm.LiteracyGoals.value.trim()))
        {
            alert("Please do not include any url in the section: literacy goals for this month");
            return false;
        }
        
        if (check_url(document.monthlyReportForm.Skills.value.trim()))
	{
	    alert("Please do not include any url in the section: skills you built this month");
	    return false;
        }
        
        if (check_url(document.monthlyReportForm.MaterialsMethods.value.trim()))
	{
	    alert("Please do not include any url in the section: materials and methods used");
	    return false;
        }
        
        if (check_url(document.monthlyReportForm.Questions.value.trim()))
	{
	    alert("Please do not include any url in the section: Other questions, problems, wonderful things...");
	    return false;
        }
        
        if (check_url(document.monthlyReportForm.OtherActivities.value.trim()))
	{
	    alert("Please do not include any url in the Classes, workshops, or other activities you've attended this month");
	    return false;
        }        
         
        
        return true;
    } 
      


