﻿// JScript File
function requiredfield(fieldid,errorid,fieldback,failureMessage,successMessage,successshow)
{  
    if(trim(document.getElementById(fieldid).value)=='')
      {       
        ShowFailureMessage(errorid,fieldback,failureMessage);
        return false;  
      }
    else
      {
        
        if(successshow)
        {         
            ShowSuccessMessage(errorid,fieldback,successMessage);
        }
        else
        {            
            HideMessage(errorid,fieldback);
        }
        return true;  
      }      
}

function emailfield(fieldid,errorid,fieldback,failureMessage,successMessage,successshow)
{        
    return expression(fieldid,errorid,fieldback,failureMessage,successMessage,successshow,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);           
}

function urlfield(fieldid,errorid,fieldback,failureMessage,successMessage,successshow)
{     
    return expression(fieldid,errorid,fieldback,failureMessage,successMessage,successshow,/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i);
}

function decimalfield(fieldid,errorid,fieldback,failureMessage,successMessage,successshow)
{ 
    return expression(fieldid,errorid,fieldback,failureMessage,successMessage,successshow,/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/i);
}

function intfield(fieldid,errorid,fieldback,failureMessage,successMessage,successshow)
{  
    return expression(fieldid,errorid,fieldback,failureMessage,successMessage,successshow,/^\d+$/);  
}

function datefield(fieldid,errorid,fieldback,failureMessage,successMessage,successshow)
{  
    return expression(fieldid,errorid,fieldback,failureMessage,successMessage,successshow,/^\d{1,2}\/\d{1,2}\/\d{4}$/);  
}

function imagefilefield(fieldid,errorid,fieldback,failureMessage,successMessage,successshow)
{  
    return expression(fieldid,errorid,fieldback,failureMessage,successMessage,successshow,/(.)+\.(gif|jpg|jpeg|bmp|GIF|JPG|JPEG|BMP)$/i);  
}

function filefield(fieldid,errorid,fieldback,failureMessage,successMessage,successshow)
{ 
   
    if(navigator.appName!="Netscape")
    {
        var exp=/^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+$/i;
        var regexp = new RegExp(exp);
        if(trim(document.getElementById(fieldid).value)=='')
          {
                return true;  
          }
        else
          {
            if(regexp.test(trim(document.getElementById(fieldid).value))==true)
            {   
                if(successshow)
                {         
                    ShowSuccessMessage(errorid,fieldback,successMessage);
                }
                else
                {            
                    HideMessage(errorid,fieldback);
                }
                return true;
            }
            else
            {     
                ShowFailureMessage(errorid,fieldback,failureMessage);    
                return false;
            }        
          }  
      }  
      else
      {
        var exp=/(?!\.)[a-z]{1,4}$/i;
        var regexp = new RegExp(exp);
        if(trim(document.getElementById(fieldid).value)=='')
          {
                return true;  
          }
        else
          {
            if(regexp.test(trim(document.getElementById(fieldid).value))==true)
            {   
                if(successshow)
                {         
                    ShowSuccessMessage(errorid,fieldback,successMessage);
                }
                else
                {            
                    document.getElementById(fieldback).style.backgroundColor=backcolor;
                    document.getElementById(errorid).style.display='none';
                }
                return true;
            }
            else
            {     
                ShowFailureMessage(errorid,fieldback,failureMessage);    
                return false;
            }        
          } 
      }  
}

function comparefield(fieldid,comparefieldid,errorid,fieldback,failureMessage,successMessage,successshow)
{ 
    if((trim(document.getElementById(fieldid).value)=='') && (trim(document.getElementById(comparefieldid).value)==''))
      {
        HideMessage(errorid,fieldback);
        return true;
      }
      else
      {
        if(trim(document.getElementById(fieldid).value)!=trim(document.getElementById(comparefieldid).value))
          {
            ShowFailureMessage(errorid,fieldback,failureMessage);
            return false;
          }
        else
          {
            
            if(successshow)
            {         
                ShowSuccessMessage(errorid,fieldback,successMessage);                
            }
            else
            {   
                HideMessage(errorid,fieldback);                
            }
            return true;  
          }   
      }   
}

function rangelengthfield(fieldid,errorid,fieldback,failureMessage,successMessage,successshow,minrange,maxrange)
{  
    if(trim(document.getElementById(fieldid).value).length>=minrange && trim(document.getElementById(fieldid).value).length<=maxrange)
      {       
        if(successshow)
        {         
            ShowSuccessMessage(errorid,fieldback,successMessage);
        }        
        return true;
      }
    else
      {
        ShowFailureMessage(errorid,fieldback,failureMessage);
        return false;        
      }      
}

function maxvaluefield(fieldid,maxval,errorid,fieldback,failureMessage,successMessage,successshow,range)
{  
    if(parseFloat(trim(document.getElementById(fieldid).value))<=maxval)
      {       
        if(successshow)
        {         
            ShowSuccessMessage(errorid,fieldback,successMessage);
        }        
        return true;
      }
    else
      {
        ShowFailureMessage(errorid,fieldback,failureMessage);
        return false;        
      }      
}

function minvaluefield(fieldid,minval,errorid,fieldback,failureMessage,successMessage,successshow,range)
{  
    if(parseFloat(trim(document.getElementById(fieldid).value))>=minval)
      {       
        if(successshow)
        {         
            ShowSuccessMessage(errorid,fieldback,successMessage);
        }        
        return true;
      }
    else
      {
        ShowFailureMessage(errorid,fieldback,failureMessage);
        return false;        
      }      
}

function ShowFailureMessageMain(errorid,fieldback,failureMessage)
{
    document.getElementById(errorid).innerHTML=failureMessage;
    document.getElementById(errorid).className='validatmessageerrormain';
    document.getElementById(fieldback).className='validaterrormain';
}

function ShowFailureMessage(errorid,fieldback,failureMessage)
{
    document.getElementById(errorid).innerHTML=failureMessage;
    document.getElementById(errorid).className='validatmessageerror';
    document.getElementById(fieldback).className='validaterror';
}
function ShowSuccessMessage(errorid,fieldback,successMessage)
{
    document.getElementById(errorid).innerHTML=successMessage;
    document.getElementById(errorid).className='validatmessagesucces';
    document.getElementById(fieldback).className='validatsuccess';
}
function HideMessage(errorid,fieldback)
{
    document.getElementById(errorid).innerHTML="";
    document.getElementById(errorid).className='validatmessagenull';
    document.getElementById(fieldback).className='validatnull';
}

function expression(fieldid,errorid,fieldback,failureMessage,successMessage,successshow,exp)
{ 
    var regexp = new RegExp(exp);
    if(document.getElementById(fieldid).value=='')
      {
            return true;  
      }
    else
      {
        if(regexp.test(trim(document.getElementById(fieldid).value))==true)
        {   
            if(successshow)
            {         
                ShowSuccessMessage(errorid,fieldback,successMessage);
            }
            else
            {            
                HideMessage(errorid,fieldback);
            }
            return true;
        }
        else
        {     
            ShowFailureMessage(errorid,fieldback,failureMessage);    
            return false;
        }        
      }      
}

    
function trim(str, chars) 
{
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) 
{
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) 
{
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

