﻿// JScript File
//<!-------------------------------------Generic JavaScript Functions ------------------------->

function trim(strText) 
{ 
   // this will get rid of leading spaces 
   while (strText.substring(0,1) == ' ') 
       strText = strText.substring(1, strText.length); 
   // this will get rid of trailing spaces 
   while (strText.substring(strText.length-1,strText.length) == ' ') 
       strText = strText.substring(0, strText.length-1); 
  return strText; 
} 
// Funtion to check blank value
function Blank(theField,s)
{
    if(trim(theField.value)=="")
    {
        alert("Please enter " + s);
        theField.focus();
        return false;
    }
    return true;    
}
// Function to check Email
function chkEmail(theField,msg)
{
        var a=theField.value;
        var reg_mail=(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+(\.[A-Za-z0-9]{2,3})(\.[A-Za-z0-9]{2,3})?$/);
        if((a.search(reg_mail)==-1))
          { 
            alert(msg);
            theField.focus();
            return false;            
          }
          return true;          
}

//Function to check Select of DropDown
function SelectDropDown(theField,s)
{
    if(theField.selectedIndex==0)
        {
            alert("Please select " +s);
            theField.focus();
            return false;
        }
     return true;
}
//Function to check Select of DropDown for AddMortgageInsurance.aspx form for ddlMIType ddl
//function SelectDropDownddlMIType(theField,s)
//{
//    if(theField.selectedIndex==2)
//        {
//            alert("Please select " +s);
//            theField.focus();
//            return false;
//        }
//     return true;
//}



//Function to check url
function isValidURL(theField,msg)
{
    var url=theField.value;
    var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if(RegExp.test(url))
    {
        return true;
    }
    else
    {
            alert(msg);
            theField.focus();
            return false;
    }
} 

//Function to check image format
function isValidImamge(theField,msg)
{
    var img=theField.value;
    var RegExp =/^.*(\.(gif|jpg|bmp|jpeg|png|GIF|JPG|BMP|JPEG|PNG))$/;
    if(img!="")
    {
     if(RegExp.test(img))
    {
        return true;
    }
    else
    {
            alert(msg);
            theField.focus();
            return false;
    }
    }
    return true;
}

//Function to check length of the value 
function lengthRange(theField,len1,len2,msg)
{
      var i;
      var valuec=theField.value;
      var len=valuec.length;
      if(valuec!="")
      {
     if((len<len1) || (len>len2))
        {
      alert(msg);
      theField.focus();
       return false;
        } 
      }
      return true;
}

//Function to validate number 
function isValidNumber(theField,s)
{
     var strno=/^[0-9]+$/;
     var no=theField.value;
     if(no!="")
     {
     if(strno.test(no))
     {
        return true;
     }
     else
     {
            alert("Please enter valid " + s);
            theField.focus();
           // theField.select();
            return false;
     }
      }
      return true;   
}

//Function to validate float number 
function isValidFloat(theField,s)
{
     var strno=/^[0-9.]+$/;
     var no=theField.value;
     if(no!="")
     {
     if(strno.test(no))
     {
        return true;
     }
     else
     {
            alert("Please enter valid " + s);
            theField.focus();
            return false;
     }
     }
      else
      {
      return true;
      }
}

//Function to check valid date (mm/dd/yyyy)
function checkdate(theField)
{
var validformat=/^\d{2}\/\d{2}\/\d{4}$/ ;//Basic check for format validity
var returnval=false;
if (!validformat.test(theField.value))
alert("Invalid Date Format. Please correct.");
else
{ //Detailed check for valid date ranges
    var monthfield=theField.value.split("/")[0];
    var dayfield=theField.value.split("/")[1];
    var yearfield=theField.value.split("/")[2];
    var dayobj = new Date(yearfield, monthfield-1, dayfield);
    if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
    alert("Invalid Day, Month, or Year range detected. Please correct.");
    else
    returnval=true;
}
if (returnval==false) 
{
    theField.select();
}
    return returnval;
}

//Function to check Special character 
function spchk(txt)
{
      var iChars = "!@#$%^&*()+=-[]\\\;,/{}|\":<>?";
     
        for(var i=0; i<txt.value.length;i++)
        {
            if(iChars.indexOf(txt.value.charAt(i))!=-1)
            {
                alert("Special characters not allowed.\nPlease try again.");
                return false;
            }
        }
 }

//Function to check ListBox
 function SelectListBox(theField,s)
{
    if(theField.selectedIndex==-1)
        {
            alert("Please select atleast one of the " +s);
            theField.focus();
            return false;
        }
     return true;
}

//Function to check password mismatch
function PasswordMismatch(Pwd1,Pwd2)
{
    if(Pwd1.value!=Pwd2.value)
      {
            alert("Your password entries did not match.");
            Pwd1.focus();
            return false;
      }
     return true;
}

//Function to check first name
function FirstName(theField,s)
{
     var strpar=/^[a-zA-Z][a-zA-Z\']*$/;
     var strcomp1=theField.value.match(strpar);
     if(strcomp1==null)
      {
            alert("Please enter valid " + s);
            theField.focus();
            return false;
      }
      return true;
}

//Function to check Name
function Name(theField,s)
{
    // var strpar=/^[a-zA-Z][a-zA-Z.'\s]*$/;
      var strpar=/^[a-zA-Z. ]+$/;
     var strcomp1=theField.value.match(strpar);
     if(strcomp1==null)
      {
            alert("Please enter valid " + s);
            theField.focus();
            return false;
      }
      return true;
}

//Function to check valid phone no(u.s only)
function PhoneNumber(theField,s)
{
     
     var strpar=/^[0-9]{3}[-]?[0-9]{3}[-]?[0-9]{4}$/;
     var strcomp1=theField.value.match(strpar);
     if(strcomp1==null)
      {
            alert("Please enter valid " + s);
            theField.focus();
            return false;
      }
   return true;
}
//Function to check phone no
function Phone(theField,s)
{
      var str=theField.value;
        for(var i=0; i<theField.value.length;i++)
        {
            if((str.charCodeAt(i)<48||  str.charCodeAt(i)>57)&& ( str.charCodeAt(i)!=45))
              { 		
                  alert("Please enter valid " + s);
                  theField.focus();
                  return false;
              }
        }
	return true;	
}


//Function to check Valid Time
function IsValidTime(timeStr) 
{
// Checks if time is in HH:MM:SS AM/PM format.
// The seconds and AM/PM are optional.
var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;
var matchArray = timeStr.match(timePat);
if (matchArray == null) {
alert("Time is not in a valid format.");
return false;
}
hour = matchArray[1];
minute = matchArray[2];
second = matchArray[4];
ampm = matchArray[6];
if (second=="") { second = null; }
if (ampm=="") { ampm = null }
if (hour < 0  || hour > 23) {
alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
return false;
}
if (hour <= 12 && ampm == null) {
if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
alert("You must specify AM or PM. ex. 12:00:00 AM/PM");
return false;
   }
}
if  (hour > 12 && ampm != null) {
alert("You can't specify AM or PM for military time.");
return false;
}
if (minute<0 || minute > 59) {
alert ("Minute must be between 0 and 59.");
return false;
}
if (second != null && (second < 0 || second > 59)) {
alert ("Second must be between 0 and 59.");
return false;
}
//return false;
return true;
}
//<!-------------------------------Specific Functions------------------------------------------>

 
 //<!-------------------------------JCTransit Busline Functions-------------------------------------->
 
    function JCTransit_AddBusline_Validation()
    {
     
      if(!Blank(document.getElementById('ctl00_mainContent_txtlineTitle')," Title ! "))
      {
        return false;
      }
    /*
      if(!Blank(document.getElementById('ctl00_mainContent_txtNotes')," Notes ! "))
      {
        return false;
      }
      */
   }
      
    
 //<!-------------------------------JCTransit AdminPassword Functions-------------------------------------->
 
  function JCTransit_AdminPassword_Validation()
  {
 
   if(!Blank(document.getElementById('ctl00_mainContent_txtUserId'),"User Name !"))
      {
        return false;
      }
   if(!Blank(document.getElementById('ctl00_mainContent_txtPassword'),"Password !")) 
      {
        return false;
      }
   }

//<!-------------------------------JCTransit Bus Destination Functions-------------------------------------->
 
 function JCTransit_BusDestination_Validation()
  {
 
   if(!Blank(document.getElementById('ctl00_mainContent_txtDestination'),"Destination !"))
      {
        return false;
     }
  }

//<!-------------------------------JCTransit Manage CMS Functions-------------------------------------->



function JCTransit_ManageCMS_Validation()
{

    if(!SelectDropDown(document.getElementById('ctl00_mainContent_ddlpagename'),"Page !"))
    {
    return false;
    }
}

/* Validation for contact page*/

function JCTransit_Contact_Validation()
{
     if(!Blank(document.getElementById('ctl00_ContentPlaceHolder1_txtname'),"Name!"))
      {
        return false;
      }
      if(!chkEmail(document.getElementById('ctl00_ContentPlaceHolder1_txtemail'),"Enter Valid Email!"))
      {
        return false;
      }
      if(!SelectDropDown(document.getElementById('ctl00_ContentPlaceHolder1_ddlsubject'),"Subject!"))
      {
        return false;
      }
      
}


/* Validation for contact page*/

/*Validation for Email Subscription */
function JCTransit_EmailSubs_Validation()
{
      if(!Blank('textarea',"Name!"))
      {
        return false;
      }
      if(!chkEmail('textarea',"Enter Valid Email!"))
      {
        return false;
      }
}
/*Validation for Email Subscription */

/* Validation for Banner Page*/
function JCTransit_Banner_Validation()
{
     if(!Blank(document.getElementById('ctl00_mainContent_txtBannerName'),"Name!"))
      {
        return false;
      }
      if(!isValidURL(document.getElementById('ctl00_mainContent_txtBannerLink'),"Enter Valid Link!"))
      {
        return false;
      }   
}
/* Validation for Banner page*/
/*Validation for Search path page*/
function JCTransit_SearchPath_Validation()
{
    if(!SelectDropDown(document.getElementById('ctl00_ContentPlaceHolder1_ddlWeekDay'),"Day of the Week!"))
      {
        return false;
      }
      if(!SelectDropDown(document.getElementById('ctl00_ContentPlaceHolder1_ddlTimeHours'),"Departure Hour!"))
      {
        return false;
      }
      
      if(!SelectDropDown(document.getElementById('ctl00_ContentPlaceHolder1_ddlAMPM'),"AM/PM!"))
      {
        return false;
      }
      
      if(!SelectDropDown(document.getElementById('ctl00_ContentPlaceHolder1_ddlOrigin'),"Origin Destination!"))
      {
        return false;
      }
      
      if(!SelectDropDown(document.getElementById('ctl00_ContentPlaceHolder1_ddlDestination'),"Destination Station!"))
      {
        return false;
      }
      
}
/*Validation for Search path page*/

/* Validation for Add Neighborhood Page */
function JCTransit_NewNeighborhood_Validation()
{
     if(!Blank(document.getElementById('ctl00_mainContent_txtNeighborhood'),"Neighborhood!"))
      {
        return false;
      }
}
//End
/* Validation for Add Parking */
function JCTransit_NewParking_Validation()
{
     if(!Blank(document.getElementById('ctl00_mainContent_txtName'),"Parking Name!"))
      {
        return false;
      }
      if(!Blank(document.getElementById('ctl00_mainContent_txtAddress'),"Parking Address!"))
      {
        return false;
      }
      if(!Blank(document.getElementById('ctl00_mainContent_txtCityStateZip'),"Parking City, State, Zip!"))
      {
        return false;
      }
       if((document.getElementById('ctl00_mainContent_txtWebsite')).value != '')
      {
        if(!isValidURL(document.getElementById('ctl00_mainContent_txtWebsite'),"Enter Valid Website!"))
      {
        return false;
      }   
      }
}
//End