﻿// JScript File
var dist; //distance 
var time;//in total secs
var pace; //in total secs
var factor; // factor for conversion between distance unit and pace unit.
var calculate = "";

function showCalculator(calc)
{
    var updatePanelPaceCalculator = document.getElementById("updatePanelPaceCalculator");
    var updatePanelHeartRateCalculator = document.getElementById("updatePanelHeartRateCalculator");
    var updatePanelCalorieMeter = document.getElementById("updatePanelCalorieMeter");
    var updatePanelMetricConversion = document.getElementById("updatePanelMetricConversion");
    var updatePanelRaceTimePredictor = document.getElementById("updatePanelRaceTimePredictor");
    
    if(calc == "1")
    {
        updatePanelPaceCalculator.style.display = "block";
        updatePanelHeartRateCalculator.style.display = "none";
        updatePanelCalorieMeter.style.display = "none";
        updatePanelMetricConversion.style.display = "none";
        updatePanelRaceTimePredictor.style.display = "none";
        ResetPaceCalculator();
    }
    else if(calc == "2")
    {
        updatePanelHeartRateCalculator.style.display = "block";
        updatePanelPaceCalculator.style.display = "none";
        updatePanelCalorieMeter.style.display = "none";
        updatePanelMetricConversion.style.display = "none";
        updatePanelRaceTimePredictor.style.display = "none";
        ResetHeartRateCalculator();
    }
    else if(calc == "3")
    {
        updatePanelCalorieMeter.style.display = "block";
        updatePanelPaceCalculator.style.display = "none";
        updatePanelHeartRateCalculator.style.display = "none";
        updatePanelMetricConversion.style.display = "none";
        updatePanelRaceTimePredictor.style.display = "none";
        ResetCalorieMeter();
    }
    else if(calc == "4")
    {
        updatePanelMetricConversion.style.display = "block";
        updatePanelPaceCalculator.style.display = "none";
        updatePanelHeartRateCalculator.style.display = "none";
        updatePanelCalorieMeter.style.display = "none";
        updatePanelRaceTimePredictor.style.display = "none";
        ResetDistanceConverter();
        ResetWeightConverter();
    }
     else if(calc == "5")
    {
        updatePanelRaceTimePredictor.style.display = "block";
        updatePanelMetricConversion.style.display = "none";
        updatePanelPaceCalculator.style.display = "none";
        updatePanelHeartRateCalculator.style.display = "none";
        updatePanelCalorieMeter.style.display = "none";
        ResetRaceTimePredictor();
    }    
}

function Calculate()
{
    var txtHour = document.getElementById("txtHour");  
    var txtMinute = document.getElementById("txtMinute");  
    var txtSecond = document.getElementById("txtSecond");  
    var txtDistance = document.getElementById("txtDistance");  
    var txtPaceHour = document.getElementById("txtPaceHour");  
    var txtPaceMinute = document.getElementById("txtPaceMinute");  
    var txtPaceSecond = document.getElementById("txtPaceSecond");  
    
    var DistanceUnit = document.getElementById("ddlDistanceUnit").value;  
    var PaceUnit = document.getElementById("ddlPaceUnit").value;  
    
    PaceUnit = PaceUnit + "s";
    
    var timeEmpty = "false";
    var distanceEmpty = "false";
    var paceEmpty = "false";
    
    
    //To check input time values are empty
    if(txtHour.value == "" && txtMinute.value == "" && txtSecond.value == "")
    {
        timeEmpty = "true";
    }
    //To check input distance value is empty
    if(txtDistance.value == "")
    {
        distanceEmpty = "true";
    }
    //To check input pace values are empty
    if(txtPaceHour.value == "" && txtPaceMinute.value == "" && txtPaceSecond.value == "")
    {
        paceEmpty = "true";
    }
    
    var time = toSecs(txtHour.value,txtMinute.value,txtSecond.value);
    var pace = toSecs(txtPaceHour.value,txtPaceMinute.value,txtPaceSecond.value);
    var dist = txtDistance.value;
    
    if(time == 0 && timeEmpty == "false")
    {
        //alert("Time can not be zero. Please enter valid time.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="Time field cannot be zero. Please enter a valid time.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    if(pace == 0 && paceEmpty == "false")
    {
        //alert("Pace can not be zero. Please enter valid pace.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="Pace cannot be zero. Please enter a valid Pace.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    if(dist == 0 && distanceEmpty == "false")
    {
        //alert("Distance can not be zero. Please enter valid distance.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="Distance can not be zero. Please enter valid distance.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    
    //To display proper message or calculate result depending on the input
    if(timeEmpty == "true" && distanceEmpty == "true" && paceEmpty == "true")
    {
        //alert("To calculate result, please enter any two values which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate the result, enter any two required values.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else if(timeEmpty == "true" && distanceEmpty == "true" && paceEmpty == "false")
    {
        //alert("To calculate result, please enter any two values which is required.");
         document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate the result, enter any two required values.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else if(timeEmpty == "true" && distanceEmpty == "false" && paceEmpty == "true")
    {
        //alert("To calculate result, please enter any two values which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate the result, enter any two required values.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else if(timeEmpty == "true" && distanceEmpty == "false" && paceEmpty == "false")
    {
        CalculateTime();
    }
    else if(timeEmpty == "false" && distanceEmpty == "true" && paceEmpty == "true")
    {
        //alert("To calculate result, please enter any two values which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate the result, enter any two required values.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else if(timeEmpty == "false" && distanceEmpty == "true" && paceEmpty == "false")
    {
        CalculateDistance();
    }
    else if(timeEmpty == "false" && distanceEmpty == "false" && paceEmpty == "true")
    {
        CalculatePace();
    }
    else if(timeEmpty == "false" && distanceEmpty == "false" && paceEmpty == "false")
    {
        CalculatePace();
    }
    
    
}

function CalculatePace()
{
    var txtHour = document.getElementById("txtHour");  
    var txtMinute = document.getElementById("txtMinute");  
    var txtSecond = document.getElementById("txtSecond");  
    var txtDistance = document.getElementById("txtDistance");  
    var txtPaceHour = document.getElementById("txtPaceHour");  
    var txtPaceMinute = document.getElementById("txtPaceMinute");  
    var txtPaceSecond = document.getElementById("txtPaceSecond");  
    
    var DistanceUnit = document.getElementById("ddlDistanceUnit").value;  
    var PaceUnit = document.getElementById("ddlPaceUnit").value;  
    
    PaceUnit = PaceUnit + "s";
    
    var timeEmpty = "false";
    var distanceEmpty = "false";
    var paceEmpty = "false";
    
    
    //To check input time values are empty
    if(txtHour.value == "" && txtMinute.value == "" && txtSecond.value == "")
    {
        timeEmpty = "true";
    }
    //To check input distance value is empty
    if(txtDistance.value == "")
    {
        distanceEmpty = "true";
    }
    //To check input pace values are empty
    if(txtPaceHour.value == "" && txtPaceMinute.value == "" && txtPaceSecond.value == "")
    {
        paceEmpty = "true";
    }
    
    //To display proper message or calculate result depending on the input
    if(timeEmpty == "true" && distanceEmpty == "true")
    {
        //alert("To calculate pace, enter time and distance which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate the pace, enter the required time and distance.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else if(distanceEmpty == "true")
    {
        //alert("To calculate pace, enter distance which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate pace, enter the required distance.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else if(timeEmpty == "true")
    {
        //alert("To calculate pace, enter time which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate pace, enter the required time.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else
    {
        calculate = "p";
        factor = convUnit(DistanceUnit,PaceUnit);
        EvaluatePaceCalc();
    }
}

function CalculateTime()
{
    var txtHour = document.getElementById("txtHour");  
    var txtMinute = document.getElementById("txtMinute");  
    var txtSecond = document.getElementById("txtSecond");  
    var txtDistance = document.getElementById("txtDistance");  
    var txtPaceHour = document.getElementById("txtPaceHour");  
    var txtPaceMinute = document.getElementById("txtPaceMinute");  
    var txtPaceSecond = document.getElementById("txtPaceSecond");  
    
    var DistanceUnit = document.getElementById("ddlDistanceUnit").value;  
    var PaceUnit = document.getElementById("ddlPaceUnit").value;  
    
    PaceUnit = PaceUnit + "s";
    
    var timeEmpty = "false";
    var distanceEmpty = "false";
    var paceEmpty = "false";
    
    
    //To check input time values are empty
    if(txtHour.value == "" && txtMinute.value == "" && txtSecond.value == "")
    {
        timeEmpty = "true";
    }
    //To check input distance value is empty
    if(txtDistance.value == "")
    {
        distanceEmpty = "true";
    }
    //To check input pace values are empty
    if(txtPaceHour.value == "" && txtPaceMinute.value == "" && txtPaceSecond.value == "")
    {
        paceEmpty = "true";
    }
    
    //To display proper message or calculate result depending on the input
    if(paceEmpty == "true" && distanceEmpty == "true")
    {
        //alert("To calculate time, enter distance and pace which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate the time, enter the required distance and pace.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else if(distanceEmpty == "true")
    {
        //alert("To calculate time, enter distance which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate time, enter the required distance.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else if(paceEmpty == "true")
    {
        //alert("To calculate time, enter pace which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate the time, enter the required pace.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else
    {
        calculate = "t";
        factor = convUnit(DistanceUnit,PaceUnit);
        EvaluatePaceCalc();
    }
}

function CalculateDistance()
{
    var txtHour = document.getElementById("txtHour");  
    var txtMinute = document.getElementById("txtMinute");  
    var txtSecond = document.getElementById("txtSecond");  
    var txtDistance = document.getElementById("txtDistance");  
    var txtPaceHour = document.getElementById("txtPaceHour");  
    var txtPaceMinute = document.getElementById("txtPaceMinute");  
    var txtPaceSecond = document.getElementById("txtPaceSecond");  
    
    var DistanceUnit = document.getElementById("ddlDistanceUnit").value;  
    var PaceUnit = document.getElementById("ddlPaceUnit").value;  
    
    PaceUnit = PaceUnit + "s";
    
    var timeEmpty = "false";
    var distanceEmpty = "false";
    var paceEmpty = "false";
    
    
    //To check input time values are empty
    if(txtHour.value == "" && txtMinute.value == "" && txtSecond.value == "")
    {
        timeEmpty = "true";
    }
    //To check input distance value is empty
    if(txtDistance.value == "")
    {
        distanceEmpty = "true";
    }
    //To check input pace values are empty
    if(txtPaceHour.value == "" && txtPaceMinute.value == "" && txtPaceSecond.value == "")
    {
        paceEmpty = "true";
    }
    
    //To display proper message or calculate result depending on the input
    if(paceEmpty == "true" && timeEmpty == "true")
    {
        //alert("To calculate distance, enter time and pace which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate the distance, enter the required time and pace.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else if(timeEmpty == "true")
    {
        //alert("To calculate distance, enter time which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate distance, enter the required time.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else if(paceEmpty == "true")
    {
        //alert("To calculate distance, enter pace which is required.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="To calculate distance, enter pace which is required.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    else
    {
        calculate = "d";
        factor = convUnit(PaceUnit,DistanceUnit);
        EvaluatePaceCalc();
    }
}
function EvaluatePaceCalc()
{
    var txtHour = document.getElementById("txtHour");  
    var txtMinute = document.getElementById("txtMinute");  
    var txtSecond = document.getElementById("txtSecond");  
    var txtDistance = document.getElementById("txtDistance");  
    var txtPaceHour = document.getElementById("txtPaceHour");  
    var txtPaceMinute = document.getElementById("txtPaceMinute");  
    var txtPaceSecond = document.getElementById("txtPaceSecond");  
    
    time = toSecs(txtHour.value,txtMinute.value,txtSecond.value);
    pace = toSecs(txtPaceHour.value,txtPaceMinute.value,txtPaceSecond.value);
    dist = txtDistance.value;
    
    var hour=0;
    var min=0;
    var sec=0;
    
    
   //Calculate pace 
   if(calculate == "p")
    {
        pace = (time / dist ) / factor;
        
       //Added by ritesh
        //pace = parseFloat(Math.round(pace));
        
        hour = HrsFromTSecs(pace);
        min = MinsFromTSecs(pace);
        sec = SecsFromTSecs(pace);
//	    txtPaceHour.value = Math.round(hour);
//	    txtPaceMinute.value = Math.round(min);
//	    txtPaceSecond.value = Math.round(sec);

        
        
	    if(hour.indexOf(".") > 0)
	    {
	        txtPaceHour.value = hour.substr(0,hour.indexOf(".") + 5);
	    }
	    else
	    {
	        txtPaceHour.value = hour;
	    }
	        
	    if(min.indexOf(".") > 0)
	    {
	        txtPaceMinute.value = min.substr(0,min.indexOf(".") + 5);
	    }
	    else
	    {
	        txtPaceMinute.value = min;
	    }
	        
	    if(sec.indexOf(".") > 0)
	    {
	        txtPaceSecond.value = sec.substr(0,sec.indexOf(".") + 5);
	    }
	    else
	    {
	        txtPaceSecond.value = sec;
	    }
	    
	}
	//Calculate distance
	else if(calculate == "d")
	{
	    dist = time / (pace / factor);
	    txtDistance.value = dist;
	}
	//Calculate time
	else if(calculate == "t")
	{
	    time = dist  * pace * factor;
	    
	    txtHour.value = HrsFromTSecs(time);
	    txtMinute.value = MinsFromTSecs(time);
	    txtSecond.value = SecsFromTSecs(time);
	    
	    if(txtHour.value.indexOf(".") > 0)
	    {
	        txtHour.value = txtHour.value.substr(0,txtHour.value.indexOf(".") + 5);
	    }
	        
	    if(txtMinute.value.indexOf(".") > 0)
	    {
	        txtMinute.value = txtMinute.value.substr(0,txtMinute.value.indexOf(".") + 5);
	    }
	        
	    if(txtSecond.value.indexOf(".") > 0)
	    {
	        txtSecond.value = txtSecond.value.substr(0,txtSecond.value.indexOf(".") + 5);
	    }
	    
	}
	calculate = "";
	
}

//Convert hr, min and seconds into total seconds
function toSecs(hr, min, sec)
{
// Convert each component to a number (remove leading 0) and sum them
	var hour = 0;
	var minute = 0;
	var second = 0;
	
	if(hr != "")
	{
	    hour = parseFloat(hr, 10);
	}
	    
	if(min != "")
	{
	    minute = parseFloat(min, 10);
	}
	
	if(sec != "")
	{
	    second = parseFloat(sec, 10);
	}
	    
	var hsecs = parseFloat(hour * 3600);
	var msecs = parseFloat(minute * 60);
	var total = hsecs + msecs + second;
	
    return total;
}

//To get hrs from the total seconds
function HrsFromTSecs(totsecs)
{
// Gets hr component for hr:min:sec string
	var hrs; // hr component as string
	var flthrs = totsecs / 3600;
	hrs = Math.floor(flthrs); //get next int less or equal
	hrs = hrs.toString(10);
	if (hrs.length == 1) 
	{   
	    hrs = "0" + hrs;
	}
    return hrs;
}

//To get minutes from total seconds
function MinsFromTSecs(totsecs)
{
// Gets min component for  hr:min:sec string
	var mins; // hr component as string
	var hrs = HrsFromTSecs(totsecs);
	var nsecs = hrs * 3600;
	var secsleft = totsecs - nsecs;
	var fltmin = secsleft / 60;
	mins = Math.floor(fltmin); //conv to integer
	mins = mins.toString(10);
	if (mins.length == 1)
	{
	    mins = "0" + mins;
	}
    return mins;
}

//To get seconds from total seconds
function SecsFromTSecs(totsecs)
{
// Converts total seconds number to hr:min:sec string
// secs is only component that may have a decimal value
	var secs; // hr component as string
	secs = totsecs - (HrsFromTSecs(totsecs) * 3600) - (MinsFromTSecs(totsecs) * 60);
	secs = secs.toString(10);
	if (secs.length == 1)
	{
		secs = "0" + secs;
	}
	else
	{ // check for a decimal point
		for (var i = 0; i < secs.length; i++)
		{
			tchar = secs.charAt(i);
			if (i == 1 && tchar == ".")
			{
				secs = "0" + secs;
				break;
			}
		}
	}
    return secs;
}

//To convert units of the output
function convUnit (funit, tunit)
{
		if (funit == tunit) 
		{
		    return 1;
		}
		else 
		if (funit == "Miles" && tunit == "Kilometers") 
		{   
		    return 1.609344;
		}
		else 
		if (funit == "Miles" && tunit == "Meters") 
		{   
		    return 1609.344;
		}
		else 
		if (funit == "Miles" && tunit == "Yards") 
		{   
		    return  1760;
		}	
		else
		if (funit == "Kilometers" && tunit == "Miles")
		{  
		     return .6213712;
		}
		else
	    if (funit == "Kilometers" && tunit == "Meters") 
	    {       
	        return 1000;
	    }
		else 
		if (funit == "Kilometers" && tunit == "Yards") 
		{   
		    return  1093.613;
		}	
		else
	    if (funit == "Meters" && tunit == "Miles")
	    {   
	         return .0006213712;
	    }
		else 
		if (funit == "Meters" && tunit == "Kilometers")
		{   
		     return .001;
		}
		else 
		if (funit == "Meters" && tunit == "Yards")
		{
		     return  1.093613;
		}	
		else 
		if (funit == "Yards" && tunit == "Miles") 
		{   
		    return .0005681; // (1/1760=)
	    }
		else 
		if (funit == "Yards" && tunit == "Kilometers") 
		{       
		    return .0009144;
		}
		else
	    if (funit == "Yards" && tunit == "Meters") 
	    {   
	        return  .9144;
	    }	
}

//To calculate heart rate
function CalculateHeartRate()
{
    var HRMALE = 220; // Heart Rate Constant for Male
    var HRFEMALE = 226; // Heart Rate Constant for Female
    var LOWENDHR = 0.65; // Heart Rate Constant for Low End
    var HIGHENDHR = 0.85; // Heart Rate Constant for High End

    var age = document.getElementById("txtAge").value;  
//    var weight = document.getElementById("txtWeight").value;  
//    var weightUnit = document.getElementById("ddlWeightUnit").value;  
    var rhr = document.getElementById("txtRHR").value;  
    var rdbMale = document.getElementById("rdbMale");  
    var rdbFemale = document.getElementById("rdbFemale");  
    
//    var rowResultMHR = document.getElementById("rowResultMHR");  
//    var rowResultTHRR = document.getElementById("rowResultTHRR");  
    
    var txtMHR = document.getElementById("txtMHR");  
    var txtTHRR = document.getElementById("txtTHRR");  
    
    var hrConst;
    
    if(rdbMale.checked)
    {
        hrConst = HRMALE;
    }
    else
    {
        hrConst = HRFEMALE;
    }
    
    var mhr = hrConst - age;
    var hrr = mhr - rhr;
    var upEndHR = (hrr * HIGHENDHR);
    var lowEndHR = (hrr * LOWENDHR);
    upEndHR = parseFloat(upEndHR) + parseFloat(rhr);
    lowEndHR = parseFloat(lowEndHR) + parseFloat(rhr);
//    rowResultMHR.style.display = "block";
//    rowResultTHRR.style.display = "block";
   
    txtMHR.value = Math.round(mhr);
    txtTHRR.value = Math.round(lowEndHR) + "-" + Math.round(upEndHR);
    
}
//To calculate 
function CalculateCalories()
{
    //alert("Calculating calories");
//    var METSRUNNING = 0.790;
//    var METSCYCLING = 0.28;
//    var METSSWIMMING = 2.93;
    
    var caloriesBurn = 0;
    var duration = 0;
    var metsCoefficient = document.getElementById("ddlSport").value;   
    var weight = document.getElementById("txtWeight").value;  
    var weightUnit = document.getElementById("ddlWeightUnit").value;  
    
    var txtDurationHour = document.getElementById("txtDurationHour");
    var txtDurationMinute = document.getElementById("txtDurationMinute");
    var txtDurationSec = document.getElementById("txtDurationSec");
//    var distance = document.getElementById("txtWorkoutDistance").value;  
//    var distanceUnit = document.getElementById("ddlWorkoutDistanceUnit").value;  
//    var sport = document.getElementById("ddlSport").value;  
    
    duration = toSecs(txtDurationHour.value,txtDurationMinute.value,txtDurationSec.value);
    duration = duration / 60;
//    var rowResultCalories = document.getElementById("rowResultCalories");  
    
    var txtCaloriesBurned = document.getElementById("txtCaloriesBurned");  
   
   //To check input time values are empty
    if(txtDurationHour.value == "" && txtDurationMinute.value == "" && txtDurationSec.value == "")
    {
       // alert("Please enter all mandatory fields.");
         document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="Please enter all mandatory fields.";
                document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
                document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
                document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    
    if (weightUnit == "Pounds") 
    {
		weight = weight * 0.45359237;
	}
	
//	if (distanceUnit == "Yards") 
//	{
//		distance = distance / 1760;
//	}
//	if (distanceUnit == "Meters") 
//	{
//		distance = distance / 1609.344;
//	}
//	if (distanceUnit == "Kilometers") 
//	{
//		distance = distance / 1.609344;
//	}
//	
//	if(sport == "Running")
//	{
//	    metsCoefficient = METSRUNNING;
//	}
//	else if(sport == "Cycling")
//	{
//	    metsCoefficient = METSCYCLING;
//	}
//	else if(sport == "Swimming")
//	{
//	    metsCoefficient = METSSWIMMING;
//	}
//	
//	caloriesBurn = Math.round(metsCoefficient * weight * distance);
	
//	rowResultCalories.style.display = "block";
    
    caloriesBurn = Math.round(((metsCoefficient * 3.5 * weight)/200) * duration);
	txtCaloriesBurned.value = caloriesBurn;
	
}


function CalculateDistances()
{
    var miles = document.getElementById("txtMiles").value;
    var kms = document.getElementById("txtKM").value;
    var yards = document.getElementById("txtYards").value;
    var meters = document.getElementById("txtMeters").value;
    var feets = document.getElementById("txtFeet").value;
    var inches = document.getElementById("txtInches").value;
    
    var factormiles = 0.0000621371;            // mm to miles.
    var factorkms = 0.0001;  // mm to kilomtr.
    var factoryards = 0.1093613298; //mm to yards.
    var factormeters = 0.1;  // mm to mtr.
    var factorfeets = 0.3280839895;  // mm to feet.
    var factorinches = 3.937007874;  // mm to in.
    
    if(miles == "" && kms == "" && yards == "" && meters == "" && feets == "" && inches == "")
    {
        //alert("Please enter the value in any unit of distance.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="Please enter the value in a unit of Distance specifically.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    
    var firstvalue = 0;
    var count = 0;
    var rsize = 8;
    
    // Find first non-blank entry

   if (miles != null && miles != 0) 
   {
      firstvalue = miles / factormiles;
   }
   else if (kms != null && kms != 0) 
   {
      firstvalue = kms / factorkms;
   }
   else if (yards != null && yards != 0) 
   {
      firstvalue = yards / factoryards;
   }
   else if (meters != null && meters != 0) 
   {
      firstvalue = meters / factormeters;
   }
   else if (feets != null && feets != 0) 
   {
      firstvalue = feets / factorfeets;
   }
   else if (inches != null && inches != 0) 
   {
      firstvalue = inches / factorinches;
   }

    document.getElementById("txtMiles").value = formatvalue((firstvalue * factormiles), rsize);
    document.getElementById("txtKM").value = formatvalue((firstvalue * factorkms), rsize);
    document.getElementById("txtYards").value = formatvalue((firstvalue * factoryards), rsize);
    document.getElementById("txtMeters").value = formatvalue((firstvalue * factormeters), rsize);
    document.getElementById("txtFeet").value = formatvalue((firstvalue * factorfeets), rsize);
    document.getElementById("txtInches").value = formatvalue((firstvalue * factorinches), rsize);
    //document.getElementById("txtMiles").focus();
}

function formatvalue(input, rsize) 
{

   var invalid = "**************************";

   var nines = "999999999999999999999999";

   var strin = "" + input;

   var fltin = parseFloat(strin);

   if (strin.length <= rsize) 
   {   
        return strin;
   }

   if (strin.indexOf("e") != -1 || fltin > parseFloat(nines.substring(0,rsize)+".4"))
   {
      return invalid.substring(0, rsize);
   }

   var rounded = "" + (fltin + (fltin - parseFloat(strin.substring(0, rsize))));

   return rounded.substring(0, rsize);

}


function CalculateWeights()
{
    var metrictons = document.getElementById("txtMetricTons").value;
    var tons = document.getElementById("txtTons").value;
    var kilograms = document.getElementById("txtKilograms").value;
    var pounds = document.getElementById("txtPounds").value;
    var oz = document.getElementById("txtOZ").value;
    var grams = document.getElementById("txtGrams").value;
    
    var factormetrictons = 0.001; //KG To MTon;
    var factortons = 0.0011023; //KG To Tons;
    var factorkilograms = 1; //KG;
    var factorpounds = 2.2046215; //KG TO Pounds;
    var factoroz = 35.27396; //KG To Oz;
    var factorgrams = 1000; //KG To Gram;
    
    if(metrictons == "" && tons == "" && kilograms == "" && pounds == "" && oz == "" && grams == "")
    {
        //alert("Please enter the value in any unit of weight.");
        document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="Please enter the value in a unit of Weight specifically.";
        document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
        document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
        document.getElementById("divWarningMsg").style.display = "block";
        return false;
    }
    
    var firstvalue = 0;
    var count = 0;
    var rsize = 8;
    
    // Find first non-blank entry

   if (metrictons != null && metrictons != 0) 
   {
      firstvalue = metrictons / factormetrictons;
   }
   else if (tons != null && tons != 0) 
   {
      firstvalue = tons / factortons;
   }
   else if (kilograms != null && kilograms != 0) 
   {
      firstvalue = kilograms / factorkilograms;
   }
   else if (pounds != null && pounds != 0) 
   {
      firstvalue = pounds / factorpounds;
   }
   else if (oz != null && oz != 0) 
   {
      firstvalue = oz / factoroz;
   }
   else if (grams != null && grams != 0) 
   {
      firstvalue = grams / factorgrams;
   }

    document.getElementById("txtMetricTons").value = formatvalue((firstvalue * factormetrictons), rsize);
    document.getElementById("txtTons").value = formatvalue((firstvalue * factortons), rsize);
    document.getElementById("txtKilograms").value = formatvalue((firstvalue * factorkilograms), rsize);
    document.getElementById("txtPounds").value = formatvalue((firstvalue * factorpounds), rsize);
    document.getElementById("txtOZ").value = formatvalue((firstvalue * factoroz), rsize);
    document.getElementById("txtGrams").value = formatvalue((firstvalue * factorgrams), rsize);
    //document.getElementById("txtMetricTons").focus();
}

function ClearDistanceConverter()
{
    document.getElementById("txtMiles").value = "";
    document.getElementById("txtKM").value = "";
    document.getElementById("txtYards").value = "";
    document.getElementById("txtMeters").value = "";
    document.getElementById("txtFeet").value = "";
    document.getElementById("txtInches").value = "";
    
}
function ClearWeightConverter()
{
    document.getElementById("txtMetricTons").value = "";
    document.getElementById("txtTons").value = "";
    document.getElementById("txtKilograms").value = "";
    document.getElementById("txtPounds").value = "";
    document.getElementById("txtOZ").value = "";
    document.getElementById("txtGrams").value = "";
}

function ValidatePaceCalculatorForm(calc) 
   {
          mandatoryFieldsErrorFlag = false;
          var status = ValidatePaceCalculatorFormRoutines();
          if(status == false)
          {
//                errors = errors.replace(/[/]/g, "" );
//                errors = errors.replace(/<li>/g, "" );
//                errors = errors.replace(/<ul>/g, "" );
//                errors = errors.replace(/<ul>+/g, "" );
//                errors = errors.replace(/<br>+/g, "\n" );
                
                //alert(errors);
                document.getElementById("WarningMsgs_RegistrationErrors").innerHTML=errors;
                document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
                document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
                document.getElementById("divWarningMsg").style.display = "block";
                errors = "";
                
              /*
                var messageErrorsDiv = document.getElementById("MessageErrors");
                
                messageErrorsDiv.style.display = "block";
                errors +='</ul>';
                messageErrorsDiv.innerHTML = "";
                
                messageErrorsDiv.innerHTML = errors; 
                errors = "<center>Some errors were encountered while processing your submission.</center><br /><ul>";
                */
                return false;   
          }
          else 
          {
            /*
            var messageErrorsDiv = document.getElementById("MessageErrors");
            
            messageErrorsDiv.innerHTML = "<img src='../../Images/home page/loading.gif' alt='Loading...' />Sending Message...";           
            messageErrorsDiv.style.display = "block";
            */
            
            Calculate();
            
//            if(calc == "1")
//                CalculateTime();
//            else if(calc == "2")
//                CalculateDistance();
//            else if(calc == "3")
//                CalculatePace();
            
            return true;
          }
   }
   
   //------------------------------------------------------------------------------------------
 function ValidatePaceCalculatorFormRoutines()
 {
    
   var status = true;
       
   
        // validating hour of time
   var varTemp = document.getElementById("txtHour");  
   var alertName = "Time Hour";
   var isMandatory = 'False';
   if(bValidate(varTemp, "Float" ,isMandatory , alertName) != true)
   {
        status = false;   
        errors = "Time is invalid. Please enter valid time.";
        varTemp.value = "";
   }
        // validating minute of time
    varTemp = document.getElementById("txtMinute");  
    alertName = "Time Minute";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
        status = false;   
        errors = "Time is invalid. Please enter valid time.";
        varTemp.value = "";
   }  
    
        // validating second of time
    varTemp = document.getElementById("txtSecond");  
    alertName = "Time Second";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
        status = false;   
        errors = "Time is invalid. Please enter valid time.";
        varTemp.value = "";
   }
                    
      // validating distance
   
   varTemp = document.getElementById("txtDistance");  
   alertName = "Distance";
   isMandatory = 'False';
   if(bValidate(varTemp, "Float" ,isMandatory , alertName) != true)
   {
        status = false;   
        errors = "Distance is invalid. Please enter valid distance.";
        varTemp.value = "";
   }
   
    // validating hour of pace
   varTemp = document.getElementById("txtPaceHour");  
   alertName = "Pace Hour";
   isMandatory = 'False';
   if(bValidate(varTemp, "Float" ,isMandatory , alertName) != true)
   {
        status = false;   
        errors = "Pace is invalid. Please enter valid pace.";
        varTemp.value = "";
   }   
        
        // validating minute of pace
    varTemp = document.getElementById("txtPaceMinute");  
    alertName = "Pace Minute";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
        status = false;   
        errors = "Pace is invalid. Please enter valid pace.";
        varTemp.value = "";
   }
    
        // validating second of pace
    varTemp = document.getElementById("txtPaceSecond");  
    alertName = "Pace Second";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
        status = false;   
        errors = "Pace is invalid. Please enter valid pace.";
        varTemp.value = "";
   }   
                    
    
   if( status == false)
   {
        return false;
   }  
   else
   {
        return true;
   }
 }
 //-------------------------------------------------------------------------------------------    

   function ValidateHeartRateCalculatorForm() 
   {
         mandatoryFieldsErrorFlag = false;
          var status = ValidateHeartRateCalculatorFormRoutines();
          if(status == false)
          {
                errors = errors.replace(/[/]/g, "" );
                errors = errors.replace(/<li>/g, "" );
                errors = errors.replace(/<ul>/g, "" );
                errors = errors.replace(/<ul>+/g, "" );
                errors = errors.replace(/<br>+/g, "\n" );
                
                //alert(errors);
                 document.getElementById("WarningMsgs_RegistrationErrors").innerHTML=errors;
                document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
                document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
                document.getElementById("divWarningMsg").style.display = "block";
                errors = "";
                
              /*
                var messageErrorsDiv = document.getElementById("MessageErrors");
                
                messageErrorsDiv.style.display = "block";
                errors +='</ul>';
                messageErrorsDiv.innerHTML = "";
                
                messageErrorsDiv.innerHTML = errors; 
                errors = "<center>Some errors were encountered while processing your submission.</center><br /><ul>";
                */
                return false;   
          }
          else 
          {
            /*
            var messageErrorsDiv = document.getElementById("MessageErrors");
            
            messageErrorsDiv.innerHTML = "<img src='../../Images/home page/loading.gif' alt='Loading...' />Sending Message...";           
            messageErrorsDiv.style.display = "block";
            */
            CalculateHeartRate();
            return true;
          }
   }
   
   //------------------------------------------------------------------------------------------
 function ValidateHeartRateCalculatorFormRoutines()
 {
    
   var status = true;
   // validating age
   var varTemp = document.getElementById("txtAge");  
   var alertName = "Age";
   var isMandatory = 'True';
   if(bValidate(varTemp, "Float" ,isMandatory , alertName) != true)
   {
        varTemp.focus();
        status = false;  
        return false;
   }
//        // validating weight
//    varTemp = document.getElementById("txtWeight");  
//    alertName = "Weight";
//    isMandatory = 'True'; 
//   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
//         status = false;   
    
        // validating resting heart rate
    varTemp = document.getElementById("txtRHR");  
    alertName = "Resting Heart Rate";
    isMandatory = 'True'; 
   if(bValidate(varTemp,"Numeric",isMandatory , alertName) != true)
   {
        varTemp.focus();
        status = false;  
   } 
     
   if( status == false)
   {
        return false;
   }  
   else
   {
        return true;
   }
 }
 
 //-------------------------------------------------------------------------------------------    

   function ValidateCalorieMeterForm() 
   {
         mandatoryFieldsErrorFlag = false;
          var status = ValidateCalorieMeterFormRoutines();
          if(status == false)
          {
                errors = errors.replace(/[/]/g, "" );
                errors = errors.replace(/<li>/g, "" );
                errors = errors.replace(/<ul>/g, "" );
                errors = errors.replace(/<ul>+/g, "" );
                errors = errors.replace(/<br>+/g, "\n" );
                
                //alert(errors);
                 document.getElementById("WarningMsgs_RegistrationErrors").innerHTML=errors;
                document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
                document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
                document.getElementById("divWarningMsg").style.display = "block";
                
                errors = "";
                
              /*
                var messageErrorsDiv = document.getElementById("MessageErrors");
                
                messageErrorsDiv.style.display = "block";
                errors +='</ul>';
                messageErrorsDiv.innerHTML = "";
                
                messageErrorsDiv.innerHTML = errors; 
                errors = "<center>Some errors were encountered while processing your submission.</center><br /><ul>";
                */
                return false;   
          }
          else 
          {
            /*
            var messageErrorsDiv = document.getElementById("MessageErrors");
            
            messageErrorsDiv.innerHTML = "<img src='../../Images/home page/loading.gif' alt='Loading...' />Sending Message...";           
            messageErrorsDiv.style.display = "block";
            */
            CalculateCalories();
            return true;
          }
   }
   
   //------------------------------------------------------------------------------------------
 function ValidateCalorieMeterFormRoutines()
 {
    
   var status = true;
       
   
        // validating weight
    var varTemp = document.getElementById("txtWeight");  
    var alertName = "Weight";
    var isMandatory = 'True'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {    
        status = false;   
   }
    
//        // validating distance
//    varTemp = document.getElementById("txtWorkoutDistance");  
//    alertName = "Distance";
//    isMandatory = 'True'; 
//   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
//         status = false;   

// validating hour of duration excercise
   varTemp = document.getElementById("txtDurationHour");  
   alertName = "Duration Hour";
   isMandatory = 'False';
   if(bValidate(varTemp, "Float" ,isMandatory , alertName) != true)
   {
        status = false;   
        errors = "Duration is invalid. Please enter valid duration.";
        varTemp.value = "";
   }   
        
        // validating minute of duration excercise
    varTemp = document.getElementById("txtDurationMinute");  
    alertName = "Duration Minute";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
        status = false;   
        errors = "Duration is invalid. Please enter valid duration.";
        varTemp.value = "";
   }
    
        // validating second of duration excercise
    varTemp = document.getElementById("txtDurationSec");  
    alertName = "Duration Second";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
        status = false;   
        errors = "Duration is invalid. Please enter valid duration.";
        varTemp.value = "";
   }   
   
     
   if( status == false)
   {
        return false;
   }  
   else
   {
        return true;
   }
 }
 
 //-------------------------------------------------------------------------------------------    

   function ValidateDistanceConverter()
   {
         mandatoryFieldsErrorFlag = false;
          var status = ValidateDistanceConverterRoutines();
          if(status == false)
          {
                errors = errors.replace(/[/]/g, "" );
                errors = errors.replace(/<li>/g, "" );
                errors = errors.replace(/<ul>/g, "" );
                errors = errors.replace(/<ul>+/g, "" );
                errors = errors.replace(/<br>+/g, "\n" );
                
                //alert(errors);
                 document.getElementById("WarningMsgs_RegistrationErrors").innerHTML=errors;
                document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
                document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
                document.getElementById("divWarningMsg").style.display = "block";
                
                errors = "";
                
              /*
                var messageErrorsDiv = document.getElementById("MessageErrors");
                
                messageErrorsDiv.style.display = "block";
                errors +='</ul>';
                messageErrorsDiv.innerHTML = "";
                
                messageErrorsDiv.innerHTML = errors; 
                errors = "<center>Some errors were encountered while processing your submission.</center><br /><ul>";
                */
                return false;   
          }
          else 
          {
            /*
            var messageErrorsDiv = document.getElementById("MessageErrors");
            
            messageErrorsDiv.innerHTML = "<img src='../../Images/home page/loading.gif' alt='Loading...' />Sending Message...";           
            messageErrorsDiv.style.display = "block";
            */
            CalculateDistances();
            return true;
          }
   }
   
   //------------------------------------------------------------------------------------------
 function ValidateDistanceConverterRoutines()
 {
    
   var status = true;
       
   
        // validating miles
    var varTemp = document.getElementById("txtMiles");  
    var alertName = "Miles";
    var isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
    {    
         status = false;   
    }
    
        // validating kilometers
    varTemp = document.getElementById("txtKM");  
    alertName = "Kilometers";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false;   
   }
    
    // validating yards
    varTemp = document.getElementById("txtYards");  
    alertName = "Yards";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false;   
   }
   // validating meters
    varTemp = document.getElementById("txtMeters");  
    alertName = "Meters";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false;   
   }
   
   // validating feet
    varTemp = document.getElementById("txtFeet");  
    alertName = "Feets";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false;   
   }
                
   // validating inches
    varTemp = document.getElementById("txtInches");  
    alertName = "Inches";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false; 
   }  
         
   if( status == false)
   {
        return false;
   }  
   else
   {
        return true;
   }
 }
 
 //-------------------------------------------------------------------------------------------    

   function ValidateWeightConverter()
   {
         mandatoryFieldsErrorFlag = false;
          var status = ValidateWeightConverterRoutines();
          if(status == false)
          {
                errors = errors.replace(/[/]/g, "" );
                errors = errors.replace(/<li>/g, "" );
                errors = errors.replace(/<ul>/g, "" );
                errors = errors.replace(/<ul>+/g, "" );
                errors = errors.replace(/<br>+/g, "\n" );
                
               // alert(errors);
                document.getElementById("WarningMsgs_RegistrationErrors").innerHTML=errors;
                document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
                document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
                document.getElementById("divWarningMsg").style.display = "block";
                
                errors = "";
                
              /*
                var messageErrorsDiv = document.getElementById("MessageErrors");
                
                messageErrorsDiv.style.display = "block";
                errors +='</ul>';
                messageErrorsDiv.innerHTML = "";
                
                messageErrorsDiv.innerHTML = errors; 
                errors = "<center>Some errors were encountered while processing your submission.</center><br /><ul>";
                */
                return false;   
          }
          else 
          {
            /*
            var messageErrorsDiv = document.getElementById("MessageErrors");
            
            messageErrorsDiv.innerHTML = "<img src='../../Images/home page/loading.gif' alt='Loading...' />Sending Message...";           
            messageErrorsDiv.style.display = "block";
            */
            CalculateWeights();
            return true;
          }
   }
   
   //------------------------------------------------------------------------------------------
 function ValidateWeightConverterRoutines()
 {
    
   var status = true;
       
   // validating MetricTons
    var varTemp = document.getElementById("txtMetricTons");  
    var alertName = "Metric Tons";
    var isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false;   
   }
        // validating Tons
    varTemp = document.getElementById("txtTons");  
    alertName = "Tons";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false;   
   }
    
    // validating Kilograms
    varTemp = document.getElementById("txtKilograms");  
    alertName = "Kilograms";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false;   
   }
   
   // validating Pounds
    varTemp = document.getElementById("txtPounds");  
    alertName = "Pounds";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false;   
   }
   
   // validating OZ
    varTemp = document.getElementById("txtOZ");  
    alertName = "OZ";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false;   
   }
                
   // validating Grams
    varTemp = document.getElementById("txtGrams");  
    alertName = "Grams";
    isMandatory = 'False'; 
   if(bValidate(varTemp,"Float",isMandatory , alertName) != true)
   {
         status = false;   
   }
   
   if( status == false)
   {
        return false;
   }  
   else
   {
        return true;
   }
 }
 
 function HandleException()
 {
      if (!document.all)
       {
            window.onbeforeunload = function()
             {
               Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);
              }
      }
  }

  function endRequest(sender, e)
  {
        var err = e.get_error();
        if (err)
        {
              if (err.name == "Sys.WebForms.PageRequestManagerServerErrorException") 
              {
                e.set_errorHandled(true);
              }
              if (err.name == "Sys.WebForms.PageRequestManagerParserErrorException") 
              {
                e.set_errorHandled(true);
              }
        }
  }


function ValidateRaceTimePredictorForm() 
{
       mandatoryFieldsErrorFlag = false;
       var status = ValidateRaceTimePredictorFormRoutines();
       if(status == false)
       {     
            errors = errors.replace(/[/]/g, "" );
            errors = errors.replace(/<li>/g, "" );
            errors = errors.replace(/<ul>/g, "" );
            errors = errors.replace(/<ul>+/g, "" );
            errors = errors.replace(/<br>+/g, "\n" );                
            document.getElementById("WarningMsgs_RegistrationErrors").innerHTML=errors;
            document.getElementById("WarningMsgs_RegistrationErrors").style.display = "block";;
            document.getElementById("WarningMsgs_divWarningInfo").style.display = "block";
            document.getElementById("divWarningMsg").style.display = "block";
            errors = "";              
            return false;   
       }
       else 
       {    
            document.getElementById("WarningMsgs_RegistrationErrors").innerHTML="";
            document.getElementById("WarningMsgs_RegistrationErrors").style.display = "none";;
            document.getElementById("WarningMsgs_divWarningInfo").style.display = "none";
            document.getElementById("divWarningMsg").style.display = "none";      
            CalculateRaceTime();
            return true;
       }
}
function ValidateRaceTimePredictorFormRoutines() 
{
   var varTemp = document.getElementById("txtRecentRaceLength");  
   if(bValidate(varTemp,"Float",'False' , "Recent Race Length") != true)
   {
        status = false;   
        errors = "Recent Race Length is invalid.";
        varTemp.value = "";
        varTemp.focus();
        return false;
   }   
   if (trim(varTemp.value) == "")
   {
        status = false;   
        errors = "Recent Race Length can not be blank.";
        varTemp.value = "";
        varTemp.focus();
        return false;
   }
   
   varTemp = document.getElementById("txtTimeHH");  
   if(bValidate(varTemp, "Float" ,'False' , "Recent Race time") != true)
   {
        status = false;   
        errors = "Recent Race time is invalid.";
        varTemp.value = "";
        varTemp.focus();
        return false;
   }       
   varTemp = document.getElementById("txtTimeMM");  
   if(bValidate(varTemp,"Float",'False' , "Recent Race time") != true)
   {
        status = false;   
        errors = "Recent Race time is invalid.";
        varTemp.value = "";
        varTemp.focus();
        return false;
   }
   
   varTemp = document.getElementById("txtTimeSS");  
   if(bValidate(varTemp,"Float",'False' , "Recent Race time") != true)
   {
        status = false;   
        errors = "Recent Race time is invalid.";
        varTemp.value = "";
        varTemp.focus();
        return false;
   }
   if ((trim(document.getElementById("txtTimeHH").value) == "") && (trim(document.getElementById("txtTimeMM").value) == "") && (trim(document.getElementById("txtTimeSS").value) == "")) 
   {
        errors = "Recent Race time can not be blank.";
        document.getElementById("txtTimeHH").value = "";
        document.getElementById("txtTimeHH").focus();
        status = false;  
        return false;
   }
     
   varTemp = document.getElementById("txtEstimatedRaceLength");  
   if(bValidate(varTemp,"Float",'False' , "Future Race Length") != true)
   {
        status = false;   
        errors = "Future Race Length is invalid.";
        varTemp.value = "";
        varTemp.focus();
        return false;
   }
   if (trim(varTemp.value) == "")
   {
        status = false;   
        errors = "Future Race Length can not be blank.";
        varTemp.value = "";
        varTemp.focus();
        return false;
   } 
   return true;
}

function CalculateRaceTime()
{
    var hh = document.getElementById("txtTimeHH").value;  
    var mm = document.getElementById("txtTimeMM").value;  
    var ss = document.getElementById("txtTimeSS").value;  
    
    var lengthDone = document.getElementById("txtRecentRaceLength").value;
    var lengthEst = document.getElementById("txtEstimatedRaceLength").value;
    
    if(document.getElementById("ddlEstimatedRaceUnit").value == 'Kilometres')
    {
        lengthDone *= 1000;
    }  
    else 
    {
        lengthDone *= 1609;
    }
    if(document.getElementById("ddlEstimatedRaceUnit").value == 'Kilometres')
    {
        lengthEst *= 1000;
    }  
    else 
    {
        lengthEst *= 1609;
    }
 
    //Formula: T2 = T1 x (D2/D1)1.06
    var recentTime = toSecs(hh, mm, ss)    
    
    var PredictedTime = recentTime * Math.pow((lengthEst / lengthDone), 1.06);    
    if (Math.round(HrsFromTSecs(PredictedTime)) < 10)
    {
        document.getElementById("txtPredictedTimeHH").value = '0' + Math.round(HrsFromTSecs(PredictedTime));
    }
    else
    {
        document.getElementById("txtPredictedTimeHH").value = Math.round(HrsFromTSecs(PredictedTime));
    }
    if (Math.round(MinsFromTSecs(PredictedTime)) <10)
    {
	    document.getElementById("txtPredictedTimeMM").value = '0' + Math.round(MinsFromTSecs(PredictedTime));
	}
	else
	{
	    document.getElementById("txtPredictedTimeMM").value = Math.round(MinsFromTSecs(PredictedTime));
	}
	if ( Math.round(SecsFromTSecs(PredictedTime)) < 10)
	{
	    document.getElementById("txtPredictedTimeSS").value = '0' + Math.round(SecsFromTSecs(PredictedTime));
	}
	else 
	{
	    document.getElementById("txtPredictedTimeSS").value = Math.round(SecsFromTSecs(PredictedTime));
	}
}