﻿var Messages=''
var imgSrc='Images/Common/Message/exclamation.ico'
var enableMsg=true
function getInputValue(fieldId){
try{
var object=document.getElementById(fieldId)
if(object==null)return(true)
var type=object.type
if(type=='text' ||type=='textarea'||type=='password' ||type=='select' || type=='select-one'||type=='select-multiple')
return(object.value)
else
return('')}
catch(err){
return('')}}
function isNumericValue(value){
try{
var RegExp=/^[-+]?(\d*)(\.?)(\d*)$/
return(value.match(RegExp)!=null)}
catch(err){
return(false)}}
function addMessage1(msg,fieldId){
try{
if(msg!='')msg="<span style='font-size:9pt;font-weight:normal;height:15px; color:#CB7624'> &nbsp;"+msg+"</span><br\><br\>"
Messages+=msg}
catch(err){}}
function isCompareValueSuccess(value1,value2,operator){
try{
if(!isNumericValue(value1))value1='\''+value1+'\''
if(!isNumericValue(value2))value2='\''+value2+'\''
if(operator=='=')operator='=='
if(value1=='')value1='\'\''
if(value2=='')value2='\'\''
return(eval(value1+operator+value2))}
catch(err){
return(false)}}
function isBlank(fieldId,dataType,entityType){
try{
var object=document.getElementById(fieldId)
if(object==null)return(true)
if(entityType=='2') //Textbox
return(trim(object.value).length==0 || ((dataType>0 && dataType<5) && trim(object.value)==0))
else if(entityType=='5'||entityType=='6') //Checkbox||RadioButton
return(!object.checked)
else if(entityType=='3'||entityType=='4') //DropdownList||List
return((object.size==0&&object.selectedIndex==0)||(object.size>0&&object.selectedIndex==-1))
else if(entityType=='7'){ //WebCobmo
    if(!isComboBlank(fieldId))return(false)
    var index=0
    var id=object.id
    if(id==fieldId){
        var list=document.getElementById(id+'_'+index)
        while(list!=null){
            if(list.checked)return(false)
            index++
            if(document.getElementById(id+'_'+index)==null)
                list=null
            else
                list=document.getElementById(id+'_'+index)
        }
        return(true)
    }
    else{
        return(false)
    }
}
else if(entityType=='8') //AutoComplete
return (trim(object.value).length==0)
else if(entityType=='9'){ //DateControl
if(GetDateObject(fieldId)!=null) return false;
else return true;
}
//*******Old Source***************/
//var type=object.type
//if(type=='text' ||type=='textarea'||type=='password')
//return(trim(object.value).length==0 || ((dataType>0 && dataType<5) && trim(object.value)==0))
//else if(type=='checkbox'||type=='radio')
//return(!object.checked)
//else if(type=='select' || type=='select-one'||type=='select-multiple'){
//return((object.size==0&&object.selectedIndex==0)||(object.size>0&&object.selectedIndex==-1))}
////hidden type added to check autocomplete
//else if(type=='hidden') return (trim(object.value).length==0);
//else{
//    if(GetDateObject(fieldId)!=null) return false;
//    else return true;
////    if(!isComboBlank(fieldId))return(false)
////    var index=0
////    var id=object.id
////    if(id==fieldId){
////        var list=document.getElementById(id+'_'+index)
////        while(list!=null){
////            if(list.checked)return(false)
////            index++
////            if(document.getElementById(id+'_'+index)==null)
////                list=null
////            else
////                list=document.getElementById(id+'_'+index)
////        }
////        return(true)
////    }
////    else{
////        return(false)
////    }
//  }
//*******Old Source***************/
}
catch(err){
showError(err,'Validation','isBlank()')
return(true)}}
function isComboBlank(id){
try{
var val=getWebComboValue(id)
if(val==null)val=''
return(val==''?true:false)}
catch(err){
showError(err,'Validation','isComboBlank')
return(true)}}
function setFocus(fieldId){
try{
document.getElementById(fieldId).focus()}
catch(err){}}
function getLength(fieldId){
try{
var object=document.getElementById(fieldId)
if(object==null)return(0)
var type=object.type
if(type=='text' ||type=='textarea'||type=='password')
return(trim(object.value).length)
else
return(-1)}
catch(err){
showError(err,'Validation','getLength')
return(0)}}
var i=0
function isValidateField(fieldId,labelId,fieldTitle,minLen,minMsg,maxLen,maxMsg,dataType,dataTypeMsg,compareFieldId,compareExp,compareMsg,decLen,decLenMsg,entityType,compareValExp,e){
try{
clearAlert(labelId)
if(minLen>0){
var l=getLength(fieldId)
if(isBlank(fieldId,dataType,entityType)||(l>-1&&l<minLen)){
showFieldAlert(labelId,fieldTitle,minMsg,fieldId,e)
return(false)}}
var l=getLength(fieldId)
if(maxLen>0&&l>maxLen){
showFieldAlert(labelId,fieldTitle,maxMsg,fieldId,e)
return(false)}
if(dataType>0&&l>0){
if(dataType>0 && dataType<5){

if(!isNumeric(fieldId,(dataType==3||dataType==4?'true':'false'))){
showFieldAlert(labelId,fieldTitle,dataTypeMsg,fieldId,e)
return false}}
if((dataType==2||dataType==4)& decLen>0 && !IsValidDecLen(fieldId,decLen)){
showFieldAlert(labelId,fieldTitle,decLenMsg,fieldId,e)
return false}
if(dataType==5 & !isValidPer(fieldId))
{
 showFieldAlert(labelId,fieldTitle,dataTypeMsg,fieldId,e)
 return false
}
if(dataType==20){
alert(GetDateObject(''))
return(false)}
if(dataType==30){
if(!isEmailAddress(fieldId)){
showFieldAlert(labelId,fieldTitle,dataTypeMsg,fieldId,e)
return false}}}

if(compareFieldId!=''&&compareExp!=''){
var val1;
var val2;
if(dataType==20){
    val1=GetDateObject(fieldId);
    val2=GetDateObject(compareFieldId);
    if(compareValExp=='+0') val2=new Date();
    if(!isDateCompareSuccess(val1,val2,compareExp)){
        showFieldAlert(labelId,fieldTitle,compareMsg,fieldId,e)
        return(false);   
    }
}
else{
    val1=getInputValue(fieldId)
    val2=getInputValue(compareFieldId)
    if(!isCompareValueSuccess(val1,val2,compareExp)){
    showFieldAlert(labelId,fieldTitle,compareMsg,fieldId,e)
    return(false)}
}
}
return(true)}
catch(err){
showError(err,'Validation','isValidateField')
return(false)}}
function isDateCompareSuccess(val1,val2,compareExp){
try{
    var flag=true;
    if(val1 != null && val2 != null){
        switch(compareExp){
            case '=':
                flag=(val1==val2);
                break;
            case '>':
                flag=(val1>val2);
                break;
            case '>=':
                flag=(val1>=val2);
                break;
            case '<':
                flag=(val1<val2);
                break;
           case '<=':
                flag=(val1<=val2);
                break;
        }
    }
    return flag;
}
catch(err){
showError(err,'Validation','isDateCompareSuccess')
return(false)}
}
function clearAlert(labelId){
try{
var object=document.getElementById(labelId)
if(object==null)return false
object.className='label';
if(!object.tag){
object.tag=object.innerHTML

 }
object.innerHTML=object.tag
showFormAlert('','','','')}
catch(err){}}
function showFieldAlert(labelId,fieldTitle,msg,fieldId,e){
try{
msg=msg.replace(':','')
addMessage(msg,fieldId)
var object=document.getElementById(labelId)
if(object==null)return false
var newHtml="&nbsp;<span style='font-weight:bold;color:#FF3600;font-size:9pt;cursor:help' title='"+msg+"'>!</span>"
object.innerHTML=newHtml+object.tag
if(enableMsg)showFormAlert(fieldId,fieldTitle,msg,e)}
catch(err){
showError(err,'Validation','showFieldAlert')}}
//function trim(s){
//while((s.substring(0,1)==' ')||(s.substring(0,1)=='\n')||(s.substring(0,1)=='\r')){
//s=s.substring(1,s.length)}
//while((s.substring(s.length-1,s.length)==' ')||(s.substring(s.length-1,s.length)=='\n')||(s.substring(s.length-1,s.length)=='\r')){
//s=s.substring(0,s.length-1)}
//return s}
function isNumeric(fieldId,allowNegative){
try{
var object=document.getElementById(fieldId)
if(object==null)return(true)
var type=object.type
if(type=='text' ||type=='textarea'||type=='password')
if(object.value.length==0)return(false)
var RegExp
if(allowNegative=='false')RegExp=/^[+]?(\d*)(\.?)(\d*)$/;else RegExp=/^[-+]?(\d*)(\.?)(\d*)$/
return(object.value.match(RegExp)!=null)}
catch(err){
showError(err,'Validation','isNumeric')}}
function isEmailAddress(fieldId){
try{
var object=document.getElementById(fieldId)
if(object==null)return(false)
var type=object.type
if(type!='text'&&type!='textarea'&&type!='password')return(false)
adr=object.value
var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s"+specialChars+"\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars+'+'
var word="("+atom+"|"+quotedUser+")"
var userPat=new RegExp("^"+word+"(\\."+word+")*$")
var domainPat=new RegExp("^"+atom+"(\\."+atom+")*$")
var matchArray=adr.match(emailPat)
if(matchArray==null){
return false}
var user=matchArray[1]
var domain=matchArray[2]
if(user.match(userPat)==null){
return false}
var IPArray=domain.match(ipDomainPat)
if(IPArray!=null){
for(var i=1;i<=4;i++){
if(IPArray[i]>255){
return false}}
return true}
var domainArray=domain.match(domainPat)
if(domainArray==null){
alert("The domain name doesn't seem to be valid.")
return false}
var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if(domArr[domArr.length-1].length<2 ||domArr[domArr.length-1].length>3){
return false}
if(len<2){
var errStr="This address is missing a hostname!"
return false}
return true}
catch(err){
return(false)}}
function restrictNumeric(fieldId,kind){
try{
return(maskNumeric(fieldId,(kind=='3'||kind=='4'?'false':'true'),(kind=='1'||kind=='3'?'true':'false')))}
catch(err){
showError(err,'Validation','restrictNumeric');return(false)}}
function maskNumeric(fieldId,ignoreNegative,IgnoreDecimal){
var key;var keychar
if(ignoreNegative==null)ignoreNegative='true'
if(IgnoreDecimal==null)IgnoreDecimal='true'
if(window.event){
if(navigator.appName.substring(0,1)=='M') key=window.event.keyCode
else key=window.event.charCode }
else if(event) key=event.which
else return true
keychar=String.fromCharCode(key)
if((key==null)||(key==0)||(key==8)||(key==9)||(key==13)||(key==27))return true
var strSet="0123456789"+(ignoreNegative=='true'?'':'-')+(IgnoreDecimal=='true'?'':'.')
if((strSet.indexOf(keychar)>-1)){
var inputbox=document.getElementById(fieldId)
if(ignoreNegative=='false'&&key==45){
if(inputbox.value.indexOf('-')==-1)inputbox.value='-'+inputbox.value
return(false)}
if(IgnoreDecimal=='false'&&inputbox.value.indexOf('.')>-1&&key==46)return(false)
return true}
return(false)}
function getMessage(){
return(Messages)}
function clearMessage(){
Messages=''}
function addMessage(msg,fieldId){
try{
Messages+='* '+msg+'\r\n'}
catch(err){}}
function formatAssociateField(id)
{
 var obj=document.getElementById(id);
 obj.className='labelActive';
}
function RestrictSpecialChars(fieldId,kind)
{
var key;var keychar
if(window.event)
{ if(navigator.appName.substring(0,1)=='M') 
    key=window.event.keyCode
  else key=window.event.charCode 
}
else if(event) 
  key=event.which
else return true
keychar=String.fromCharCode(key)
if((key==null)||(key==0)||(key==8)||(key==9)||(key==13)||(key==27))return true
var strSet;
if (kind==10){ strSet="~`!@#$%^&*()_-+<>?,./ \\\";:'[]{}"}  else {strSet="~`!@#$%^&*()_+<>?,./\\0123456789\";:'[]{}"};
if((strSet.indexOf(keychar)>-1))
 return false
else
 return true
}
function IsValidDecLen(id,maxLen){
try{var value=document.getElementById(id).value;if(value==null || value.indexOf('.')==-1) return(true);
return(value.split('.')[1].length<=maxLen);}
catch(err){showError(err,'Validation','IsValidDecLen');}
}
function isValidPer(id)
{
 try
 {
  var obj=document.getElementById(id);
  if(obj==null) return(false);
  return(obj.value>=0 && obj.value<=100);
 }
 catch(err){showError(err,'Validation','isValidPer');}
}


