/* function to check if email is valid or not
return true if valid
return false if invalid
*/
//-----------Start Function check email----------------- 
function IsEmail(strEmail)
{
var valid = true;
 
		var at="@";
		var dot=".";
		var lat=strEmail.indexOf(at);
		var lstrEmail=strEmail.length;
		var ldot=strEmail.indexOf(dot);
		
		if (strEmail.indexOf(at)==-1){
		 
		   valid = false;
		}

		if (strEmail.indexOf(at)==-1 || strEmail.indexOf(at)==0 || strEmail.indexOf(at)==lstrEmail){
		   
		  valid = false;
		}

		if (strEmail.indexOf(dot)==-1 || strEmail.indexOf(dot)==0 || strEmail.indexOf(dot)==lstrEmail){
		    
		    valid = false;
		}

		 if (strEmail.indexOf(at,(lat+1))!=-1){
		    
		    valid = false;
		 }

		 if (strEmail.substring(lat-1,lat)==dot || strEmail.substring(lat+1,lat+2)==dot){
		    
		    valid = false;
		 }

		 if (strEmail.indexOf(dot,(lat+2))==-1){
		    
		    valid = false;
		 }
		if (strEmail.indexOf(dot)==strEmail.length-1){
                  
                   valid = false;
                   }	
		 if (strEmail.indexOf(" ")!=-1){
		  
		 valid = false;
	}
return valid;
};
//-----------End Function check email----------------- 

//-----------Start Function check URL-----------------
 function IsURL(strURL)
 {
var urlRegxp = /^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([\w]+)(.[\w]+){1,2}$/;

return urlRegxp.test(strURL);
}
//-----------End Function check URL-------------------

//-----------Start phone number validation----------------- 
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 7;

function IsInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (IsInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
//-----------End phone number validation-----------------
//-----------Start number validation----------------- 

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

//-----------End number validation-----------------

//-----------Start Alpha Beta validation-----------------
function IsAlphaBetic(alphaBetic)
{
	var validChar = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ';
	for (i = 0; i < alphaBetic.length; i++) {
    if (validChar.indexOf(alphaBetic.charAt(i),0) == -1)
    {
    return false;
    }
    }
return true;
}
//-----------End Alpha Beta validation-----------------

//-----------Start Arabic Alpha Beta validation------------------

function IsCharacters(strCharacters)
{
var InValidCha = "0123456789@!$#%^&*()/?\;:_-"
  var Cha;
 for (i=0; i < strCharacters.length; i++) 
      {
Cha = strCharacters.charAt(i); 
if (InValidCha.indexOf(Cha) != -1)
         {
return false 
   
   }
   }
   return true;
   }
//-----------End Arabic Alpha Beta validation-----------------

//-----------Start Date validation-----------------
// Date Validation Javascript
// copyright 30th October 2004, by Stephen Chapman
// http://javascript.about.com

// You have permission to copy and use this javascript provided that
// the content of the script is not changed in any way.

function valDateFmt(datefmt) {
myOption = -1;
for (i=0; i<datefmt.length; i++) {
if (datefmt[i].checked) {
myOption = i;
}
}
if (myOption == -1) {alert("You must select a date format");return ' ';}
return datefmt[myOption].value;}
function valDateRng(daterng) {myOption = -1;
for (i=0; i<daterng.length; i++) {if (daterng[i].checked) {myOption = i;}}
if (myOption == -1) {alert("You must select a date range");return ' ';}
return daterng[myOption].value;}
function stripBlanks(fld) {var result = "";for (i=0; i<fld.length; i++) {
if (fld.charAt(i) != " " || c > 0) {result += fld.charAt(i);
if (fld.charAt(i) != " ") c = result.length;}}return result.substr(0,c);}
var numb = '0123456789';
function isValid(parm,val) {if (parm == "") return true;
for (i=0; i<parm.length; i++) {if (val.indexOf(parm.charAt(i),0) == -1)
return false;}return true;}
function isNum(parm) {return isValid(parm,numb);}
var mth = new Array(' ','january','february','march','april','may','june','july','august','september','october','november','december');
var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
function validateDate(fld,fmt,rng) {
var dd, mm, yy;var today = new Date;var t = new Date;fld = stripBlanks(fld);
if (fld == '') return false;var d1 = fld.split('\/');
if (d1.length != 3) d1 = fld.split(' ');
if (d1.length != 3) return false;
if (fmt == 'u' || fmt == 'U') {
  dd = d1[1]; mm = d1[0]; yy = d1[2];}
else if (fmt == 'j' || fmt == 'J') {
  dd = d1[2]; mm = d1[1]; yy = d1[0];}
else if (fmt == 'w' || fmt == 'W'){
  dd = d1[0]; mm = d1[1]; yy = d1[2];}
else return false;
var n = dd.lastIndexOf('st');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('nd');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('rd');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('th');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf(',');
if (n > -1) dd = dd.substr(0,n);
n = mm.lastIndexOf(',');
if (n > -1) mm = mm.substr(0,n);
if (!isNum(dd)) return false;
if (!isNum(yy)) return false;
if (!isNum(mm)) {
  var nn = mm.toLowerCase();
  for (var i=1; i < 13; i++) {
    if (nn == mth[i] ||
        nn == mth[i].substr(0,3)) {mm = i; i = 13;}
  }
}
if (!isNum(mm)) return false;
dd = parseFloat(dd); mm = parseFloat(mm); yy = parseFloat(yy);
if (yy < 100) yy += 2000;
if (yy < 1582 || yy > 4881) return false;
if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0))) day[mm-1]++;
if (mm < 1 || mm > 12) return false;
if (dd < 1 || dd > day[mm-1]) return false;
t.setDate(dd); t.setMonth(mm-1); t.setFullYear(yy);
if (rng == 'p' || rng == 'P') {
if (t > today) return false;
}
else if (rng == 'f' || rng == 'F') {
if (t < today) return false;
}
else if (rng != 'a' && rng != 'A') return false;
return true;
}
//-----------End Date validation-----------------

//-----------Start Description validation----------------- 

function IsDesc(desc)
{
    if (desc.length < 3)
    {
    return false;
    }
return true;
}
//-----------End Description validation-----------------

//-----------Start Get File Name----------------- 

function GetFileName(file)
{

while (file.indexOf("\\") != -1)
{
file = file.slice(file.indexOf("\\") + 1);
}

return file;
}
//-----------End Get File Name-----------------

//-----------Start Get File Extension----------------- 

function GetFileExt(file)
{

while (file.indexOf("\\") != -1)
{
file = file.slice(file.indexOf("\\") + 1);
}
ext = file.slice(file.indexOf(".")).toLowerCase();

return ext;
}
//-----------End Get File Extension-----------------

//-----------Start ImageExtension validation----------------- 

function IsValidImage(ext)
{

extArray = new Array(".gif", ".jpg", ".png");

for (var i = 0; i < extArray.length; i++) 
{
if (extArray[i] == ext)
{ 

return true;
}
}
alert("Please only upload images that end in types:  " 
+ (extArray.join("  ")) + "\nPlease select a new "
+ "image to upload and submit again.");
return false;
}
//-----------End ImageExtension validation-----------------

//-----------Start FileExtension validation----------------- 

function IsValidFile(ext)
{

extArray = new Array(".pdf", ".doc", ".rtf");

for (var i = 0; i < extArray.length; i++) 
{
if (extArray[i] == ext)
{ 

return true;
}
}
alert("Please only upload files that end in types:  " 
+ (extArray.join("  ")) + "\nPlease select a new "
+ "file to upload and submit again.");
return false;
}
//-----------End FileExtension validation-----------------