﻿// JScript File
function validateQuickSearchForm(Ticker, CompanyName, cik, Text, 
    ListFormGroup, ListFormType, ListTimeFrame)
{	
    //no special character for ticker, company name at least 3 charaters.
    var regTicker = new RegExp("^[a-zA-Z0-9\., ']+$", "gi");
    var regCompany = new RegExp("^.{3,}$", "gi");
    var regCIK = new RegExp("^[0-9\, ]*$", "gi");
    var intFieldCount = 0;
    var strFields = "";
    
    var objTicker = document.getElementById(Ticker);    
    if(!isAllSpaces(objTicker.value))
    {
        if (!regTicker.test(objTicker.value))
        {
            alert('Invalid Ticker Symbol.');
            return false;
        }
        intFieldCount++;
        if(strFields == ""){ strFields = "a symbol"; }			
    }
    
    objCompanyName = document.getElementById(CompanyName);
    if(!isAllSpaces(objCompanyName.value))
    {
        if (!regCompany.test(objCompanyName.value))
        {
            alert('You must enter at least 3 characters when searching by company name. If less than 3 characters are entered, the search will be too broad.');
            return false;
        }
        intFieldCount++;        
        if(strFields == ""){ strFields = "a company name"; }
			else{ strFields += " and a company name"; }
    }
    
    var objCIK = document.getElementById(cik);    
    if(!isAllSpaces(objCIK.value))
    {
        if (!regCIK.test(objCIK.value))
        {
            alert('Invalid CIK.');
            return false;
        }
        intFieldCount++;
        if(strFields == ""){ strFields = "a CIK"; }
			else{ strFields += " and a CIK"; }
    }
    
    //company name and symbol mutually exclusive	 
    if(intFieldCount > 1){	    
	    alert('You cannot enter ' + strFields + '.\nThe fields are mutually exclusive.');
	    return false;
    }
    
    //The user has to enter at least one search parameter
    if (intFieldCount > 0 )
    {  
        return true;
    }
    else
    {
       if (!isAllSpaces(document.getElementById(Text).value)){return true;}
       else if (document.getElementById(ListFormGroup).selectedIndex > 0){return true;}
       else if (document.getElementById(ListFormType).selectedIndex > 0){return true;}
       else if (!isAllSpaces(document.getElementById(ListTimeFrame).value)){return true;}
       else 
       {
        alert('Please enter at least one search parameter.');
        return false;}
    }     
}

function validateSubmitSearchForm(Ticker, CompanyName, Text, 
    ListFormGroup, ListFormType, ListTimeFrame, ListDateType, RadioDisplayBy, SearchCompanyURL, SearchFilingURL)
{	
    //no special character for ticker, company name at least 3 charaters.
    var regTicker = new RegExp("^[a-zA-Z0-9\., ']+$", "gi");
    var regCompany = new RegExp("^.{3,}$", "gi");
    var intFieldCount = 0;
    var strFields = "";
    var strRedirectURL = SearchFilingURL;
    var arQueryParams = new Array();
    var isCompanySearch = false;
   
   if(document.getElementById(RadioDisplayBy+"_0").checked)
   {
    arQueryParams.push("searchTypeID=2");
    isCompanySearch = true;
    strRedirectURL = SearchCompanyURL;
   }
   else
   {
    arQueryParams.push("searchTypeID=1");
    strRedirectURL = SearchFilingURL;
   }
    
    var objTicker = document.getElementById(Ticker);    
    if(!isAllSpaces(objTicker.value))
    {
        if (!regTicker.test(objTicker.value))
        {
            alert('Invalid Ticker Symbol.');
            return false;
        }
        intFieldCount++;
        if(strFields == ""){ strFields = "a symbol"; }		
        var tickerValue = objTicker.value.replace(",", "|");
        tickerValue = tickerValue.replace(" ", "|");
        
        //if user enter single ticker, we do searchfiling no matter users choose display by company or filing. 
        if(isCompanySearch && tickerValue.indexOf("|") > 0)
            strRedirectURL = SearchCompanyURL;
        else
            strRedirectURL = SearchFilingURL;
                        
        arQueryParams.push("ticker=" + tickerValue);
    }
    
    objCompanyName = document.getElementById(CompanyName);
    if(!isAllSpaces(objCompanyName.value))
    {
        if (!regCompany.test(objCompanyName.value))
        {
            alert('You must enter at least 3 characters when searching by company name. If less than 3 characters are entered, the search will be too broad.');
            return false;
        }
        intFieldCount++;        
        if(strFields == ""){ strFields = "a company name"; }
			else{ strFields += " and a company name"; }

        arQueryParams.push("name=" + encodeURI(objCompanyName.value.replace(/&/g,'')) + "*");
    }
    
    //company name and symbol mutually exclusive	 
    if(intFieldCount > 1){	    
	    alert('You cannot enter ' + strFields + '.\nThe fields are mutually exclusive.');
	    return false;
    }
    
   if (!isAllSpaces(document.getElementById(Text).value))
   {
    arQueryParams.push("text=" + encodeURI(document.getElementById(Text).value));
    intFieldCount++;
   }

   var objFormType = document.getElementById(ListFormType);
   if (objFormType.selectedIndex > 0)
   {
     var arFormTypeSelected = new Array();
     
     for( var i=1; i < objFormType.options.length; i++)
     {
        if(objFormType.options[i].selected)
            arFormTypeSelected.push(objFormType.options[i].value);
     }
     arQueryParams.push("formtypeid=" + arFormTypeSelected.join("|"));
     intFieldCount++;
   }
   
   var objFormGroup = document.getElementById(ListFormGroup);
   if (objFormGroup.selectedIndex > 0)
   {
     var arFormGroupSelected = new Array();
     
     for( var i=1; i < objFormGroup.options.length; i++)
     {
        if(objFormGroup.options[i].selected)
            arFormGroupSelected.push(objFormGroup.options[i].value);
     }
     arQueryParams.push("FormGroupID=" + arFormGroupSelected.join("|"));
     intFieldCount++;
   }
   
   if (!isAllSpaces(document.getElementById(ListTimeFrame).value) && !isAllSpaces(document.getElementById(ListDateType).value))
   {
    arQueryParams.push(document.getElementById(ListDateType).value + "=" + document.getElementById(ListTimeFrame).value);
    intFieldCount++;
   }
   
   if(intFieldCount <= 0)
   {
    alert('Please enter at least one search parameter.');
    return false;
   }
   
   arQueryParams.push("from=quicksearch");
   
    strRedirectURL += "&" + arQueryParams.join("&");
    window.location.href = strRedirectURL;
}

function validateDashSearchForm(Ticker, CompanyName, Text, 
    ListFormGroup, ListFormType, ListTimeFrame)
{	
    //no special character for ticker, company name at least 3 charaters.
    var regTicker = new RegExp("^[a-zA-Z0-9\., ']+$", "gi");
    var regCompany = new RegExp("^.{3,}$", "gi");
    //var regCIK = new RegExp("^[0-9\, ]*$", "gi");
    var intFieldCount = 0;
    var strFields = "";
    
    var objTicker = document.getElementById(Ticker);    
    if(!isAllSpaces(objTicker.value))
    {
        if (!regTicker.test(objTicker.value))
        {
            alert('Invalid Ticker Symbol.');
            return false;
        }
        intFieldCount++;
        if(strFields == ""){ strFields = "a symbol"; }			
    }
    
    objCompanyName = document.getElementById(CompanyName);
    if(!isAllSpaces(objCompanyName.value))
    {
        if (!regCompany.test(objCompanyName.value))
        {
            alert('You must enter at least 3 characters when searching by company name. If less than 3 characters are entered, the search will be too broad.');
            return false;
        }
        intFieldCount++;        
        if(strFields == ""){ strFields = "a company name"; }
			else{ strFields += " and a company name"; }
    }
    
//    var objCIK = document.getElementById(cik);    
//    if(!isAllSpaces(objCIK.value))
//    {
//        if (!regCIK.test(objCIK.value))
//        {
//            alert('Invalid CIK.');
//            return false;
//        }
//        intFieldCount++;
//        if(strFields == ""){ strFields = "a CIK"; }
//			else{ strFields += " and a CIK"; }
//    }
//    
    //company name and symbol mutually exclusive	 
    if(intFieldCount > 1){	    
	    alert('You cannot enter ' + strFields + '.\nThe fields are mutually exclusive.');
	    return false;
    }
    
    //The user has to enter at least one search parameter
    if (intFieldCount > 0 )
    {  
        return true;
    }
    else
    {
       if (!isAllSpaces(document.getElementById(Text).value)){return true;}
       else if (document.getElementById(ListFormGroup).selectedIndex > 0){return true;}
       else if (document.getElementById(ListFormType).selectedIndex > 0){return true;}
       else if (!isAllSpaces(document.getElementById(ListTimeFrame).value)){return true;}
       else 
       {
        alert('Please enter at least one search parameter.');
        return false;}
    }     
}
