﻿// JScript File
//This script is used to validate the inputs provided in the GrowthTracker form

  /*Submit function which will be executed when click on Submit button */

        function funSubmit()
        {           
            var isValid = true;

            var varControls = new String();

            var isValidHeight = true;

            //Checking if radio button is checked or not 
            if(document.getElementById("male").checked == false && document.getElementById("female").checked == false)
            {
                document.getElementById("gender.error").style.display = 'block';
                isValid = false;
            }
            else
            {
                document.getElementById("gender.error").style.display = 'none';
                varControls += "gender.control,";
            }

            //checking if "feet" input value is given or not.
            if(IsNumeric(document.getElementById("feet").value) == false || document.getElementById("feet").value == "")           
            {                
                document.getElementById("feet.error").style.display = 'block';
                isValid = false;
                isValidHeight = false;
            }
            else if(!CheckRange(document.getElementById("feet").value,2,6)) //checking if feet is between 2 and 6 
            {
                document.getElementById("feet.error").style.display = 'block';
                isValid = false;
                isValidHeight = false;
            }
            else
            {
                document.getElementById("feet.error").style.display = 'none';
                varControls += "feet.control,";
            }
            //checking if "inches" input value is given or not.            
            if(IsNumeric(document.getElementById("inches").value) == false || document.getElementById("inches").value == "")
            {               
                document.getElementById("inches.error").style.display = 'block';
                isValid = false;
                isValidHeight = false;
            }
            else if(!CheckRange(document.getElementById("inches").value,0,11))  //checking if inches is between 0 and 11 
            {
                 document.getElementById("inches.error").style.display = 'block';
                isValid = false;
                isValidHeight = false;
            }
            else
            {
                 document.getElementById("inches.error").style.display = 'none';
                 varControls += "inches.control,";
            }                                
    
             //checking if "ageSelect" drowdown value is selected or not.
            if(document.getElementById("ageSelect").selectedIndex == 0)
            {
                document.getElementById("ageSelect.error").style.display = 'block';
                isValid = false;
            }
            else
            {
                 document.getElementById("ageSelect.error").style.display = 'none';
                 varControls += "ageSelect.control,";
            }
            //calling eraseCookie_forTracker() function to erase the existing cookie
             eraseCookie_forTracker();
            //calling createCookie_forTracker() function to create the cookie
            createCookie_forTracker();  
            if(isValid == false)
            {
                HideControls(varControls); //Hiding the controls if the validation is failed  
                if(isValidHeight) //Hiding "Your child's height:" span if both provided values for feet and inches are correct
                {
                    document.getElementById("spanHeight").style.display = 'none';
                }
                else
                {
                    document.getElementById("spanHeight").style.display = 'block';
                }                                                            
            } 
            if(isValid)
            {
            document.getElementById("formPost").value ="Posted";
            }
 
          return isValid;
        }

        //function to check for the numeric data.

        function IsNumeric(data)
        {  
            var isNumeric = true;  
            if(data.length > 0)
            {                                  
                for(var count = 0;count<data.length;count++)
                {   
                   var charcode = data.charCodeAt(count);                   
                   if(charcode < 48 || charcode > 57)
                    {                    
                       isNumeric = false;
                   }
              }     
           }           
           return isNumeric;
        }


        //To hide the controls when the correct input are provided.
        function HideControls(Ids)
        {           
            if(Ids.length > 0)
            {
             Ids = Ids.substring(0,Ids.length - 1);             

             var arrControls = Ids.split(",");             

             for(var count = 0; count < arrControls.length; count++)
             {               
                document.getElementById(arrControls[count]).style.display = 'none';
             }
           } 
        }  

        //To check the range of the input-feet,inches
        function CheckRange(value,start,end)
        {            
            if(value >= start && value <= end)
            {
                return true;
            }
            else
            {
                return false;
            }            

        }       


        //Function to create Cookie
        function createCookie_forTracker()
        {
            var gender = "";                        
            if(document.getElementById("male").checked == true)
            {  
                gender = "male";
            }
            else if(document.getElementById("female").checked == true)
            {
                gender = "female";
            }          
                       
            var Cname = "gender~feet~inches~ageSelect#"; 
            var Cvalue = gender + "~" + document.getElementById("feet").value + "~" + document.getElementById("inches").value + "~" + document.getElementById("ageSelect").selectedIndex;
            
            createCookie(Cname,Cvalue);
            
            
        }
        //function to Erase the Cookie
        function eraseCookie_forTracker()
        {            
            eraseCookie("gender~feet~inches~ageSelect#");            
        }
        
        //function to read the Cookie
        function readCookie_forTracker(pageName)
        {
          
            var cooKieValues = readCookie("gender~feet~inches~ageSelect#");
            if(cooKieValues)
            {
                var arrCookieValues = cooKieValues.split("~");                     
                var gender = arrCookieValues[0];           
                var feet = arrCookieValues[1];
                var inches = arrCookieValues[2];
                var ageSelect = arrCookieValues[3];
                           
                if (gender)
                {
                    
                    if(gender == "male")
                    {
	                    document.getElementById("male").checked = true;
	                }
	                else if(gender == "female")
	                {
	                    document.getElementById("female").checked = true;
	                }
                }            
                
                if (feet)
                {
                    document.getElementById("feet").value = feet;
	            }
                if(inches)
                {
                    document.getElementById("inches").value = inches;
                }
                if(ageSelect)
                {
                    document.getElementById("ageSelect").selectedIndex = ageSelect;
                }
                
                if(pageName == "tracking")
                {
                    funSubmit();
                }                     
            }       
        }        
                       
        
        
  /* Begin for Cookie Create, Erase and Read */
            
   function createCookie(name,value,minutes)
   {
	    if (minutes) {
		    var date = new Date();
		    //date.setTime(date.getTime()+(days*24*60*60*1000));
		    date.setTime(date.getTime()+(minutes*60*1000));
		    var expires = "; expires="+date.toGMTString();
	    }
	    else var expires = "";
	    document.cookie = name+"="+value;//+expires+"; path=/";
    }
    
    function readCookie(name) 
    {
	    var nameEQ = name + "=";
	    var ca = document.cookie.split(';');
	    for(var i=0;i < ca.length;i++) {
		    var c = ca[i];
		    while (c.charAt(0)==' ') c = c.substring(1,c.length);
		    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	    }
	    return null;
    }

    function eraseCookie(name) 
    {
	    createCookie(name,"",-1);
    }

    /* End for Cookie Create, Erase and Read */