﻿// Validation routines for Scheme Form

function ValidateMandatoryField(field, errorMsg)
{
    if (document.getElementById(field) != null)
    {
       if (document.getElementById(field).value.length==0)
       {
         alert(errorMsg);
         document.getElementById(field).focus();
         return false;
       }              
    }    
    return true;
}

function ValidateRegEx (field, errorMsg, regexpression)
{
     if ((document.getElementById(field).value.match(regexpression)) && (document.getElementById(field).value!=''))
     {
        return true;
     } 
     else 
     {
        alert(errorMsg);
        document.getElementById(field).focus();
        return false;
     } 
}

 function IsRegionValid()
 {             
    if (document.getElementById("Regional").checked == true)
    {
        if ((document.getElementById("EastOfEngland").checked == false) &&
           (document.getElementById("EastMidlands").checked == false) &&        
           (document.getElementById("NorthEast").checked == false) &&
           (document.getElementById("NorthWest").checked == false) &&
           (document.getElementById("SouthEastEngland").checked == false) &&
           (document.getElementById("SouthWestEngland").checked == false) &&
           (document.getElementById("WestMidlands").checked == false) &&
           (document.getElementById("YorkshireHumber").checked == false) &&
           (document.getElementById("NorthWest").checked == false) &&
           (document.getElementById("England").checked == false) &&
           (document.getElementById("London").checked == false) &&
           (document.getElementById("NonRegionSpecific").checked == false) &&
           (document.getElementById("Scotland").checked == false) &&
           (document.getElementById("NorthernIreland").checked == false) &&
           (document.getElementById("Wales").checked == false))   
         {
            alert("You must select at least one Region as you have selected this a a Regional product");
            return false;            
         }              
         else
         {
            return true;
         }                                               
    }
    else
    {
       if ((document.getElementById("UK").checked == true) ||
          (document.getElementById("Europe").checked == true))
       {
         return true;    
       }
       else
       {
          alert("You must select at least one Geographic Scope");
          return false; 
       }
    }
 }
 
 function IsSectorValid()
 {         
    if ((document.getElementById("AllSectors").checked == false) &&
       (document.getElementById("Aerospace").checked == false) &&
       (document.getElementById("Biotechnology").checked == false) &&
       (document.getElementById("BroadcastingFilmAndTVAudio").checked == false) &&
       (document.getElementById("ConsumerElectronics").checked == false) &&
       (document.getElementById("DataCommunications").checked == false) &&
       (document.getElementById("DefenseMilitary").checked == false) &&
       (document.getElementById("DigitalMediaGames").checked == false) &&
       (document.getElementById("EngineeringAndIndustrial").checked == false) &&
       (document.getElementById("FinancialServices").checked == false) &&
       (document.getElementById("Government").checked == false) &&
       (document.getElementById("InstrumentationAndControl").checked == false) &&
       (document.getElementById("Lighting").checked == false) &&
       (document.getElementById("Marine").checked == false) &&
       (document.getElementById("MedicalHealthcare").checked == false) &&
       (document.getElementById("Nuclear Energy").checked == false) &&
       (document.getElementById("OilAndGas").checked == false) &&
       (document.getElementById("Retail").checked == false) &&
       (document.getElementById("RenewableEnergy").checked == false) &&
       (document.getElementById("ScientificAndAnalytcical").checked == false) &&
       (document.getElementById("Security").checked == false) &&
       (document.getElementById("Space").checked == false) &&
       (document.getElementById("TravelAndTourism").checked == false) &&
       (document.getElementById("Utilities").checked == false))              
    {
      alert("You must select at least one Sector");
      return false;
    } 
    else
    {
      return true;
    }           
 }
 
 
 function IsStageValid()
 {         
    if ((document.getElementById("BlueSky").checked == false) &&
       (document.getElementById("Collaborative").checked == false) &&
       (document.getElementById("Facilities").checked == false) &&
       (document.getElementById("Pre-Clinical").checked == false) &&
       (document.getElementById("Proof of Concept").checked == false) &&
       (document.getElementById("Clinical").checked == false) &&
       (document.getElementById("SalesAndMarketing").checked == false) &&
       (document.getElementById("BusinessDevelopment").checked == false) &&
       (document.getElementById("Manufacturing").checked == false) &&
       (document.getElementById("Startup").checked == false) &&
       (document.getElementById("EmploymentAndTraining").checked == false) &&
       (document.getElementById("Internationalisation").checked == false))
    {
      alert("You must select at least one Stage");
      return false;
    }
    else
    {
      return true;
    }            
 }
 
 function IsFinanceTypeValid()
 {         
    if ((document.getElementById("GrantSubsidy").checked == false) &&
       (document.getElementById("Loan").checked == false) &&
       (document.getElementById("LoanGuarantee").checked == false) &&
       (document.getElementById("VentureCapital").checked == false) &&
       (document.getElementById("TaxRelief").checked == false) &&
       (document.getElementById("AngelInvestment").checked == false) &&
       (document.getElementById("ConsultancyGrant").checked == false) &&
       (document.getElementById("IPOSupport").checked == false) &&
       (document.getElementById("EquityInvestment").checked == false) &&
       (document.getElementById("Startup").checked == false) &&
       (document.getElementById("EmploymentAndTraining").checked == false) &&
       (document.getElementById("Internationalisation").checked == false))                     
    {
      alert("You must select at least one Finance Type");
      return false;
    }
    else
    {
     return true;
    }            
 }
 
 function IsTargetOrganisationValid()
 {         
    if ((document.getElementById("SME").checked == false) &&
       (document.getElementById("Academic").checked == false) &&
       (document.getElementById("Non-SME").checked == false))
    {
      alert("You must select at least one Target Organisation");
      return false;
    }   
    else
    {
      return true;
    }         
 }
 
 
 function ValidateMandatoryFields()
 {
    var valid = false;
    
    if (ValidateMandatoryField("Title", "You must complete the Title"))
    {        
        if (ValidateMandatoryField("OwnerOrganisation", "You must complete the Owner Organisation field"))
        {                    
            if (ValidateMandatoryField("Eligibility", "You must complete the Eligibility field"))
            {
                if (ValidateMandatoryField("Description", "You must complete the Description field"))
                {                    
                    if (ValidateMandatoryField("WebAddress", "You must complete the Web Address field"))
                    {
                        if (ValidateMandatoryField("ApplicationMethod", "You must complete the Application Method field"))
                        {                                        
                            if (ValidateMandatoryField("FillerDetails", "You must complete the Completed Details field"))
                            {                                                
                              valid = true;                                                
                            }                                     
                        }
                    }                 
                }
            }            
        }
    }
    return valid;
 }
 
 function ValidRegExFields ()
 {
    var valid = false;
    var webUrl = /^(((ht|f)tp(s?))\:\/\/)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk)(\:[0-9]+)*(\/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$/;
    
    if (ValidateRegEx ("WebAddress", "Web Address must be a valid URL", webUrl))
    {
        if (document.getElementById("CaseStudyWebAddress") != null)
        {
            if (document.getElementById("CaseStudyWebAddress").value.length==0)
            {
                /*  Case study is empty which is OK as it is not mandatory */
                valid = true;
            }
            else
            {
                /*  Case study is not empty, need to check that it is a valid URL */
                if (ValidateRegEx ("CaseStudyWebAddress", "Case Study Web Address must be a valid URL", webUrl))
                {
                    valid = true;
                } 
            }
        }
    }
    
    return valid;
 }
 
 function ValidateForm ()
 {
    var valid = false;
    
    if (ValidateMandatoryFields())
    {
        if (ValidRegExFields())
        {
            if (IsStageValid() &&
                IsFinanceTypeValid() &&
                IsTargetOrganisationValid() &&
                IsSectorValid() && 
                IsRegionValid())
            {
                valid = true;            
            }           
        }
    }
    
    return valid;
 }

function Stub ()
{
    alert("stub");
}
