//============================================================================= // This function binds each control to relative event validation. //============================================================================= function setValidation( ctrl, valCtrl, eventType, ValidationType, ErrMsg, ErrTarget, CancelEvent, chkValue, fnSuccess ) { var ev, func var control = document.getElementById( ctrl ); eval("ev = control." + eventType + ";"); if (typeof(ev) == "function") { ev = ev.toString(); ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}")); } else ev = ""; if (navigator.appName.toLowerCase().indexOf('explorer') > -1) func = new Function( ev + " if( " + ValidationType + "(event, '" + valCtrl + "', '" + ErrMsg + "', '" + ErrTarget + "', '" + chkValue + "', '"+ fnSuccess +"' ) == false && " + CancelEvent + " == 1 ) { event.returnValue = false; return false;}" ); else func = new Function("event", ev + " if( " + ValidationType + "(new IECompatibleEvent( event ), '" + valCtrl + "', '" + ErrMsg + "', '" + ErrTarget + "', '" + chkValue + "', '"+ fnSuccess +"' ) == false && " + CancelEvent + " == 1 ){ event.preventDefault(); return false; }" ); // alert(func); eval("control." + eventType + " = func;"); } //============================================================================= // Function checks if the value of given control is empty or not. //============================================================================= function IsInputEmpty( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { valCtrl = document.getElementById(valCtrl); if( valCtrl.tagName == "INPUT" || valCtrl.tagName == "TEXTAREA" || valCtrl.tagName == "SELECT") { if( valCtrl.value == "" ) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } else { ShowError( ErrMsg, ErrTarget, 0 ); if( fnSuccess != 'undefined' && fnSuccess != 'null' ) eval( fnSuccess ); } } else { return false; } } //============================================================================= // Function checks if length of value in given control mets minumum length. //============================================================================= function IsMinLength( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { valCtrl = document.getElementById(valCtrl); if( chkValue != "undefined" && (valCtrl.tagName == "INPUT" || valCtrl.tagName == "TEXTAREA") ) { if( valCtrl.value.length < chkValue ) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } else { ShowError( ErrMsg, ErrTarget, 0 ); if( fnSuccess != 'undefined' && fnSuccess != 'null' ) eval( fnSuccess ); } } else { return false; } } //============================================================================= // Function checks if length of value in given control is within maximum length. //============================================================================= function IsMaxLength( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { valCtrl = document.getElementById(valCtrl); if( chkValue != "undefined" && (valCtrl.tagName == "INPUT" || valCtrl.tagName == "TEXTAREA") ) { if( valCtrl.value.length > chkValue ) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } else { ShowError( ErrMsg, ErrTarget, 0 ); if( fnSuccess != 'undefined' && fnSuccess != 'null' ) eval( fnSuccess ); } } else { return false; } } //============================================================================= // Function checks if value in two of the controls is the same. //============================================================================= function MatchValue( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { if( chkValue == '' || chkValue == 'undefined' ) chkValue = 1; valCtrl = valCtrl.split("|"); valCtrl1 = document.getElementById( valCtrl[0] ); valCtrl2 = document.getElementById( valCtrl[1] ); if( (valCtrl1.tagName == "INPUT" || valCtrl1.tagName == "TEXTAREA") && (valCtrl2.tagName == "INPUT" || valCtrl2.tagName == "TEXTAREA") ) { if( ( (valCtrl1.value != valCtrl2.value) && chkValue == 1) || ( (valCtrl1.value == valCtrl2.value) && chkValue != 1)) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } else { ShowError( ErrMsg, ErrTarget, 0 ); if( fnSuccess != 'undefined' && fnSuccess != 'null' ) eval( fnSuccess ); } } else { return false; } } //============================================================================= // Function checks if value in given control is a valid Number value. //============================================================================= function HasValidChars( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { var RNum = "0123456789"; var Nums = "0123456789.-"; var AlphaUp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var AlphaLr = "abcdefghijklmnopqrstuvwxyz"; var Alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var Name = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz .-'"; var Email = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.@-_"; var Phone = "0123456789-()."; var Pwd = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.@-_;!'`"; var UserID = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var ValidChars switch( chkValue.toLowerCase() ) { case "rnum" : ValidChars = RNum; break; case "num" : ValidChars = Nums; break; case "alphaup": ValidChars = AlphaUp; break; case "alphalr": ValidChars = AlphaLr; break; case "alpha" : ValidChars = Alpha; break; case "name" : ValidChars = Name; break; case "email" : ValidChars = Email; break; case "phone" : ValidChars = Phone; break; case "pwd" : ValidChars = Pwd; break; case "user" : ValidChars = UserID; break; default : ValidChars = chkValue; } var IsValid = true; valCtrl = document.getElementById(valCtrl); if( valCtrl.tagName == "INPUT" || valCtrl.tagName == "TEXTAREA" ) { for( i = 0; i < valCtrl.value.length; i++ ) { if( ValidChars.indexOf( valCtrl.value.charAt(i) ) == -1) IsValid = false; } if( IsValid == false ) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } else { ShowError( ErrMsg, ErrTarget, 0 ); if( fnSuccess != 'undefined' && fnSuccess != 'null' ) eval( fnSuccess ); } } else { return false; } } //============================================================================= // Function checks if value in given control is a valid Email address. //============================================================================= function IsValidEmail( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { var EmailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; valCtrl = document.getElementById(valCtrl); if( (valCtrl.tagName == "INPUT" || valCtrl.tagName == "TEXTAREA") && valCtrl.value != "" ) { if( ! EmailFilter.test( valCtrl.value ) ) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } else { ShowError( ErrMsg, ErrTarget, 0 ); if( fnSuccess != 'undefined' && fnSuccess != 'null' ) eval( fnSuccess ); } } else { return false; } } //============================================================================= // Function checks if value in given control is more than a minumum value. //============================================================================= function IsMinValue( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { valCtrl = document.getElementById(valCtrl); if( valCtrl.value < chkValue ) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } else { ShowError( ErrMsg, ErrTarget, 0 ); if( fnSuccess != 'undefined' && fnSuccess != 'null' ) eval( fnSuccess ); } } //============================================================================= // Function checks if value in given control is less than a maxiumum value. //============================================================================= function IsMaxValue( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { valCtrl = document.getElementById(valCtrl); if( valCtrl.value > chkValue ) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } else { ShowError( ErrMsg, ErrTarget, 0 ); if( fnSuccess != 'undefined' && fnSuccess != 'null' ) eval( fnSuccess ); } } //============================================================================= // Function checks if the checkbox control is checked or not. //============================================================================= function IsChecked( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { valCtrl = document.getElementById(valCtrl); if( valCtrl.tagName == "INPUT" ) { if( valCtrl.checked == false ) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } else { ShowError( ErrMsg, ErrTarget, 0 ); if( fnSuccess != 'undefined' && fnSuccess != 'null' ) eval( fnSuccess ); } } else { return false; } } //============================================================================= // Function checks and fails if the given control is not empty. //============================================================================= function ErrorNotEmpty( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { valCtrl = document.getElementById(valCtrl); if( valCtrl.innerHTML != "" ) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } else { ShowError( ErrMsg, ErrTarget, 0 ); if( fnSuccess != 'undefined' && fnSuccess != 'null' ) eval( fnSuccess ); } } //============================================================================= // Sample validation function. //============================================================================= function ValidationFunction( event, valCtrl, ErrMsg, ErrTarget, chkValue, fnSuccess ) { ShowError( ErrMsg, ErrTarget, 1 ); return false; } //============================================================================= // Function displays the given error message on the given target. //============================================================================= function ShowError( ErrMsg, ErrTarget, IsError ) { ErrTarget = document.getElementById(ErrTarget); if(IsError == 1 ) { if( ErrTarget != null && (ErrTarget.tagName == "DIV" || ErrTarget.tagName == "SPAN") ) ErrTarget.innerHTML = ErrMsg; else alert(ErrMsg); } else { if( ErrTarget != null && (ErrTarget.tagName == "DIV" || ErrTarget.tagName == "SPAN") ) if( ErrTarget.innerHTML == ErrMsg ) ErrTarget.innerHTML = ""; } } //============================================================================= // Function makes Mozilla's "event" object compatible with IE. //============================================================================= function IECompatibleEvent( event ) { if (navigator.appName.toLowerCase().indexOf('explorer') < 0 ) { this.srcElement = event.target; this.altKey = event.altKey; this.ctrlKey = event.ctrlKey; this.shiftKey = event.shiftKey; this.button = EqualizeToIEButton( event.button ); this.fromElement = event.relatedTarget; this.toElement = event.relatedTarget; this.keyCode = event.charCode; this.clientX = event.clientX; this.clientY = event.clientY; this.type = event.type; } } //============================================================================= // Function makes the value of Mozilla's "button" propert in event object // compatible with IE button propert's values. //============================================================================= function EqualizeToIEButton( button ) { switch( button ) { case 0: return 1; break; // Left Button case 1: return 4; break; // Middle Button case 2: return 2; break; // Right Button } }