﻿// JScript File

//* -------------------- COMMON FUNCTIONS ----------------------------------
/* Function to check if required field is blank or not, if field is 
   blank then error message is displayed
*/
function ForceDataEntry(objField, strFieldName)
{
	// To find out the Value of the control
	var strFieldValue=objField.value;
	if (trimAll(objField.value) == '0' || trimAll(objField.value) == '0.00' || trimAll(objField.value) == '') 
	{
		alert("You need to enter information for " + strFieldName);
		objField.focus();
		return false;
	}
	else if (IsEmpty(strFieldValue))
	{
		alert("You need to enter information for " + strFieldName);
		objField.focus();
		return false;
	}
	return true;
}

			 
//* Check whether a given string is empty or not.
function IsEmpty(strTxtBoxValue)
{   if ((strTxtBoxValue == null) || (strTxtBoxValue.length == 0) || (strTxtBoxValue == ""))
	{
		return true;			
	}	
}

//^ Checks to see if a DropDownList is empty. If so, an error message is displayed.
function ForceComboItems(ddlName, strDdlName, IsMandatory)
{
    var ItemCount=ddlName.value;
    if (IsMandatory=="T")
    {
       if (IsComboEmpty(ItemCount))
		{
			alert("First Select the " + strDdlName);
			ddlName.focus();
			return false;
		}  
    }
    if (IsMandatory=="F")
    {
        if (IsComboEmpty(ItemCount))
        {
            return true;
        }
    }
	return true;
}


//^ Check whether a given DropDown value is empty or not.
function IsComboEmpty(ddlValue)
{   if  (ddlValue == 0 || (ddlValue == '--Select--')|| (ddlValue == '--ALL--'))
	{
		return true;			//^ Returning True, if Empty Text Box found
	}	
}

//^ Function for trim any string
function trimAll( strValue )
{				
	var objRegExp = /^(\s*)$/;
	 {
		strValue = strValue.replace(objRegExp, '');
		if( strValue.length == 0)
			return strValue;
		 }
     //check for leading & trailing spaces
    objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
    if(objRegExp.test(strValue)) 
     {
    	//remove leading and trailing whitespace characters
		strValue = strValue.replace(objRegExp, '$2');
	 }
		return strValue;
}

//~ Check whether a given Email is Valid or not.
function IsEmailValid(objField, strFieldName,IsMandatory)
{
 // To find out the Value of the control
 var strFieldValue=objField.value;
 if (IsMandatory=="T")
    {
        if (IsEmpty(strFieldValue))
        {
            alert(strFieldName + " can not be left blank");
            objField.focus();
            return false;
        }    
    }
    if (IsMandatory=="F")
    {
        if (IsEmpty(strFieldValue))
        {
            return true;
        }
    }
    var at="@";
    var dot=".";
    var underscore="_";
    var lat=strFieldValue.indexOf(at);
    var lstr=strFieldValue.length;
    var ldot=strFieldValue.indexOf(dot);
    var lastdot=strFieldValue.lastIndexOf(dot);
    var lunderScore=strFieldValue.indexOf(underscore);
    var lastunderScore=strFieldValue.lastIndexOf(underscore);
    var i,d=0,s=0,ui=0,countDot=0,countUS=0;
    var count=0;
 
    if (strFieldValue.indexOf(at)==-1)
    {
        alert("Email should be in abc@xyz.com format");
       objField.focus();
       return false;
    }
    if (strFieldValue.indexOf(at) == -1 || strFieldValue.indexOf(at) == 0 || strFieldValue.indexOf(at) == lstr)
    {
       alert("Email should be in abc@xyz.com format");
       objField.focus();
       return false;
    }
    if (strFieldValue.lastIndexOf(dot)== lstr-1 || strFieldValue.indexOf(dot)== -1 || strFieldValue.indexOf(dot)== 0  )
    {
       alert("Email should be in abc@xyz.com format");
       objField.focus();
       return false;
    }
 
    if(!((strFieldValue.charCodeAt(0)>=65 && strFieldValue.charCodeAt(0)<=90) || (strFieldValue.charCodeAt(0)>=97 && strFieldValue.charCodeAt(0)<=122)))
    {   
        alert(" First letter should be character ");
         objField.focus();
         return false;
     }
 
    if ((ldot+1)  == lstr)
    {
 
        alert("Email should be in abc@xyz.com format");
        objField.focus();
        return false;
    }
     if (strFieldValue.indexOf(at,(lat+1))!= -1)
     {
        alert("Email should be in abc@xyz.com format");
        objField.focus();
        return false;
     }
     if (strFieldValue.substring(lat-1,lat) == dot || strFieldValue.substring(lat+1,lat+2)== dot)
     {
       alert("Email should be in abc@xyz.com format");
       objField.focus();
       return false;
     }
 
     if (strFieldValue.indexOf(dot,(lat+2))== -1)
     {
        alert("Email should be in abc@xyz.com format");
        objField.focus();
        return false;
     }
 
     if (strFieldValue.indexOf(" ")!= -1)
     {
         alert("Email should be in abc@xyz.com format");
         objField.focus();
         return false;
     }
      
     
     for(i=lat;i<lstr;i++)
     {
     if(strFieldValue.charAt(i)== dot)
     count=count+1;
     }
     if(count>2)
     { 
     alert("Email should be in abc@xyz.com format");
         objField.focus();
         return false;
     }
 

    for(i=strFieldValue.lastIndexOf(dot)+1;i<lstr;i++)
    {
    d=d+1;
    if(!((strFieldValue.charCodeAt(i)>=65 && strFieldValue.charCodeAt(i)<=90) || (strFieldValue.charCodeAt(i)>=97 && strFieldValue.charCodeAt(i)<=122)))
    { 
     alert("Domain should be only characters");
         objField.focus();
         return false;
     }
    }
    if(d>5)
    { 
     alert("Domain should not be more than 5 characters");
         objField.focus();
         return false;
     }
 

    for(i=strFieldValue.indexOf(at)+1;i<=strFieldValue.lastIndexOf(dot);i++)
    {
    s=s+1;
    if(!((strFieldValue.charCodeAt(i)>=65 && strFieldValue.charCodeAt(i)<=90) || (strFieldValue.charCodeAt(i)>=97 && strFieldValue.charCodeAt(i)<=122) || (strFieldValue.charAt(i)>=0 && strFieldValue.charAt(i)<=9) || (strFieldValue.charAt(i)==dot)))
        {   
             alert(" Email should be in abc@xyz.com format ");
             objField.focus();
             return false;
         }
     }     
    if(s>20)
    {   
             alert(" Email should be in abc@xyz.com format ");
             objField.focus();
             return false;
         }
         
     if(strFieldValue.charAt(lastdot-1)==dot)
     {   
             alert(" Email should be in abc@xyz.com format ");
             objField.focus();
             return false;
         }
         
         if(strFieldValue.charAt(lastunderScore-1)==underscore)
        {   
             alert(" Email should be in abc@xyz.com format ");
             objField.focus();
             return false;
         }
         
         if(strFieldValue.charAt(lunderScore+1)==dot)
     {   
             alert(" Email should be in abc@xyz.com format ");
             objField.focus();
             return false;
         }
         
         if(strFieldValue.charAt(ldot+1)==underscore)
        {   
             alert(" Email should be in abc@xyz.com format ");
             objField.focus();
             return false;
         }
         
         if(strFieldValue.charAt(lat-1)==underscore)
        {   
             alert(" Email should be in abc@xyz.com format ");
             objField.focus();
             return false;
         }
         
         if(strFieldValue.charAt(lat-1)==dot)
        {   
             alert(" Email should be in abc@xyz.com format ");
             objField.focus();
             return false;
         }
     
    for(i=0;i<lat;i++)
    {
    if(strFieldValue.charAt(i)==dot)
    {
    countDot=countDot+1;
    }
    ui=ui+1;
    }
    if(ui>30)
    {   
             alert(" User name should be less than 30 character ");
             objField.focus();
             return false;
     }
     if(countDot>1)
    {   
             alert(" User name should not contain more than one dot");
             objField.focus();
             return false;
     }
 

    for(i=0;i<lat;i++)
    {
    if(strFieldValue.charAt(i)==underscore)
    {
    countUS=countUS+1;
    }
    }
 
    if(countUS>2)
    {
    alert(" Email should be in abc@xyz.com format ");
             objField.focus();
             return false;
     }
        
     for(i=1;i<lstr;i++)
     {
        if(!((strFieldValue.charCodeAt(i)>=65 && strFieldValue.charCodeAt(i)<=90) || (strFieldValue.charCodeAt(i)>=97 && strFieldValue.charCodeAt(i)<=122) || (strFieldValue.charAt(i)== '_') || (strFieldValue.charAt(i)>=0 && strFieldValue.charAt(i)<=9) || (strFieldValue.charAt(i)==dot) || (strFieldValue.charAt(i)==at)))
        {   
             alert(" Email should be in abc@xyz.com format ");
             objField.focus();
             return false;
         }
      }
   return true;     
       
}
//* -------------- FORCE ALPHABETIC ENTRY ----------------
function ForceAlphabetic(objField, strFieldName,IsMandatory)
{
    var strFieldValue = new String(objField.value);
    var intLoopCounter = 0;
    
    if (IsMandatory=="T")
    {
        return ForceDataEntry(objField, strFieldName)
    }
    else    //^ If non-mandatory field => blank or spaces is ignored
    if (IsMandatory=="F")
    {
        if (IsEmpty(strFieldValue))
        {
            return true;
        }
    }
	if (objField.value.match(/^[.a-zA-Z \s]+$/))
	{
		return true;
	}
	else
	{
		alert(strFieldName + " must have only Alphabetic values");
		objField.focus();
		return false;
	} 
}

//===============================================================================================================
//^ Returns true if the string passed is a valid non-decimal numeric value
//^ no characters except a -ve sign at the begining is accepted
//^ otherwise, it displays an error message
//^ Also Forces the user to enter a value > 0

function ForceNumericEntry(objField, strFieldName,IsMandatory)
{
	var strFieldValue = new String(objField.value);
    var intLoopCounter = 0;
    
    //^ If mandatory field => testing for blank or spaces
    if (IsMandatory=="T")
    {
        if (IsEmpty(strFieldValue))
        {
            alert(strFieldName + " can not be left blank");
            objField.focus();
            return false;
        }
    }
    else    //^ If non-mandatory field => blank or spaces is ignored
    if (IsMandatory=="F")
    {
        if (IsEmpty(strFieldValue))
        {
            return true;
        }
    }

    // Checking for spaces at the begining of text.
    if (strFieldValue.indexOf(" ")!= -1)
    {
        alert(strFieldName + " must be a valid No.");
        objField.focus();
        return false;
    }

    // Validating for a numeric non-decimal value.
	for (intLoopCounter = 0; intLoopCounter < strFieldValue.length; intLoopCounter++)
	{
		//if ((strFieldValue.charAt(intLoopCounter) < '0' || strFieldValue.charAt(intLoopCounter) > '9') && (strFieldValue.charAt(0) != '-'))
		if  (strFieldValue.charAt(intLoopCounter) == '.')
		{
			alert(strFieldName + " does not accept a decimal value.");
			objField.focus();
			return false;
		}
		if  ((strFieldValue.charAt(intLoopCounter) > '9') && (strFieldValue.charAt(0) != '-'))
		{
			alert(strFieldName + " must be a valid No.");
			objField.focus();
			return false;
		}
	}
		
    //^ Validating for the Valid Numeric value to be > 0		
    var strLength = strFieldValue.length;
    intLoopCounter = 0;
    var ZeroValue = "Y";
    
    while (intLoopCounter < strLength)
    {
            if (strFieldValue.charAt(intLoopCounter) == '0')
            {
                intLoopCounter = intLoopCounter + 1;
            }
            else
            {
                ZeroValue = "N"  
                break ;
            }
    }
    if (ZeroValue == "Y")
    {
		alert(strFieldName + " must be greater than 0");
		objField.focus();
		return false;
    }
    
	return true;
}


function ForcePhoneValidation(objField, strFieldName,IsMandatory)
{
   
	var strFieldValue = new String(objField.value);
    var intLoopCounter = 0;
    
    //^ If mandatory field => testing for blank or spaces
    if (IsMandatory=="T")
    {
        if (IsEmpty(strFieldValue))
        {
            alert(strFieldName + " can not be left blank");
            objField.focus();
            return false;
        }
    }
    else    //^ If non-mandatory field => blank or spaces is ignored
    if (IsMandatory=="F")
    {
        if (IsEmpty(strFieldValue))
        {
            return true;
        }
    }

    // Checking for spaces at the begining of text.
    if (strFieldValue.indexOf(" ")!= -1)
    {
        alert(strFieldName + " must be a valid No.");
        objField.focus();
        return false;
    }

    // Validating for a numeric non-decimal value.
	for (intLoopCounter = 0; intLoopCounter < strFieldValue.length; intLoopCounter++)
	{
		//if ((strFieldValue.charAt(intLoopCounter) < '0' || strFieldValue.charAt(intLoopCounter) > '9') && (strFieldValue.charAt(0) != '-'))
		if  (strFieldValue.charAt(intLoopCounter) == '.')
		{
			alert(strFieldName + " does not accept a decimal value.");
			objField.focus();
			return false;
		}
		if  ((strFieldValue.charAt(intLoopCounter) > '9') || (strFieldValue.charAt(intLoopCounter) == '-'))
		{
			alert(strFieldName + " must be a valid numeric value.");
			objField.focus();
			return false;
		}
	}
		
    //^ Validating for the Valid Numeric value to be > 0		
    var strLength = strFieldValue.length;
    intLoopCounter = 0;
    var ZeroValue = "Y";
    
    while (intLoopCounter < strLength)
    {
            if (strFieldValue.charAt(intLoopCounter) == '0')
            {
                intLoopCounter = intLoopCounter + 1;
            }
            else
            {
                ZeroValue = "N"  
                break ;
            }
    }
    if (ZeroValue == "Y")
    {
		alert(strFieldName + " must be greater than 0");
		objField.focus();
		return false;
    }
    
    if (strFieldValue.length < 8)
    {
       alert(strFieldName + " must be minimum 8 digit");
        objField.focus();
        return false;
    }
    
	return true;
}


function SetOtherField(field1,field2)
{
    if(field1.value=="Other")
    {
        field2.readOnly=false;
    }
    else
    {
       field2.readOnly=true;
       field2.value="";
    }
}

function SetWaterMark(field1,field2)
{   

    if(field1.value=="ISBN")
    {
        field2.value="9999999999999";
        field2.style.backgroundColor = '#EFFBFF';
    }
    else
    {
       field2.value="";
     field2.style.backgroundColor ='';
    }
  
}

function ClearTextbox(field1)
{ 

    if(field1.value="9999999999999")
        {
            field1.value="";
            field1.style.backgroundColor ='';
        }
}

function textCounter(field,cntfield,maxlimit) 
{
    if (field.value.length > maxlimit) // if too long...trim it!
        field.value = field.value.substring(0, maxlimit);
    // otherwise, update 'characters left' counter
    else
        cntfield.value = maxlimit - field.value.length;
}

function CheckKeyCode()
{
    if((event.keyCode >= 96 && event.keyCode <= 105) ||
        (event.keyCode > 32 && event.keyCode < 48) ||
        (event.keyCode > 57 && event.keyCode < 65) ||
        (event.keyCode > 90 && event.keyCode < 96) ||
        (event.keyCode == 189 || event.keyCode == 109))
        {
            return true; 
        }
    else 
    {
        return false;
    }
}

function noCopyKey(e) 
{
    var forbiddenKeys = new Array('c','x','v');
    var isCtrl;
    if(window.event) 
    {
        if(window.event.ctrlKey)
            isCtrl = true;
        else
            isCtrl = false;
    }
    else 
    {
        if(e.ctrlKey)
            isCtrl = true;
        else
            isCtrl = false; 
    }
    if(isCtrl) 
    {
        for(i=0; i < forbiddenKeys.length; i++) 
        {
            if(forbiddenKeys[i] == String.fromCharCode(window.event.keyCode).toLowerCase()) 
            {
                alert('You can not copy and paste here');
                return false;
            }
        }
    }
    return true;
}

function noCopyMouse(e) 
{
    var message="";
    if (event.button == 2 || event.button == 3) 
    {
        alert('You can not copy and paste here');
        return false;
    }
    return true;
}

function getFileType(objField)
{

  sValue=objField.value;
  if (sValue == "")
  {
        alert("Please Upload File");
        objField.focus();
        return false;
  }
  var aParts = sValue.split( "\\" );
  var iParts = aParts.length;
  if( iParts >= 1 )
  {
    var sFile = aParts[ iParts - 1 ];
    var aFile = sFile.split( "." );
    if( aFile.length == 2 )
    {
      sName = aFile[0];
      sExt = aFile[1];

		if((sExt=="txt")||(sExt=="doc")||(sExt=="Doc")||(sExt=="DOC") || (sExt=="Docx") || (sExt=="DOCX") || (sExt=="docx") || (sExt=="PDF") || (sExt=="pdf") || (sExt=="TXT") )
		 {
			
		 }
		 else
		 {
		 // not a supported file fomat
		 alert("Not a supported File Format, It should be an Doc or Txt File");
		  return false;
		 }
     }
	 else
    {
      //not a valid file or blank
	 
        return true;
    }
   return true;
   }
}
   

//================================================================================================
// Validates a Date Entered by User 
// Also Forces the User to stick to  "dd/mm/yyyy" Date Format.
function ForceValidDate(objField,strDateName,IsMandatory)
{

     var strDateValue=new String(objField.value);

     //^ If mandatory field => testing for blank or spaces
    if (IsMandatory=="T")
    {

        if (IsEmpty(strDateValue))
        {
       
            alert(strDateValue + " can not be left blank");
            objField.focus();
            return false;
        }
    }
    else    //^ If non-mandatory field => blank or spaces is ignored
    if (IsMandatory=="F")
    {
        if (IsEmpty(strDateValue))
        {
            return true;
        }
    }

     
     //^ Splitting the date using the divider "/"
     var arrDate = strDateValue.split('/');
     
     //^ If user did not use the SEPERATOR "/" then,
     if (arrDate.length!=3)
     {
        alert("Valid Date Format is : dd/mm/yyyy");
        objField.focus();
        return false;
     }
     
     // if splitting occured using the correct SEPERATOR ("/")
     if (strDateValue.length==10)
     {
       //^ d stores date entered by user in Javascript Internal Date Format
       var d = new Date(arrDate[2], arrDate[1]-1, arrDate[0]);
     
       //Checking if the date entered is a valid Date or not
       if (!isNaN(d) && d.getFullYear()==arrDate[2] && d.getMonth()==arrDate[1]-1 && d.getDate()==arrDate[0])
       {
             return true;
       }
       else
       {
	        alert(strDateName + " is an Invalid Date.");
            objField.focus();
            return false;
       }
     }
     else
     {
		alert("Valid Date Format is : dd/mm/yyyy");
        objField.focus();
        return false;
     }
}



function radio_button_checker(objField,strFieldName)
{
    // set var radio_choice to false
    var radio_choice = false;

    // Loop from zero to the one minus the number of radio button selections
     
    for (counter = 0; counter < objField.length; counter++)
    {
   
    // If a radio button has been selected it will return true
    // (If not it will return false)
    if (objField[counter].checked)
    radio_choice = true; 
    }

    if (!radio_choice)
    {
    // If there were no selections made display an alert box 
    alert("Please select "+strFieldName);
    return (false);
    }
    return (true);
}

function capLock(e){


 kc = e.keyCode?e.keyCode:e.which;
     if((kc >= 65 && kc <= 90) || (kc >= 97 && kc <= 122))
     {
         sk = e.shiftKey?e.shiftKey:((kc == 16)?true:false);
         if(((kc >= 65 && kc <= 90) && !sk)||((kc >= 97 && kc <= 122) && sk) )
         {
        
         document.getElementById('hfCapsKeyOn').value = 'CapsOn'
         }
         else
         {
         
          document.getElementById('hfCapsKeyOn').value = 'CapsOff'
          }
     }
}