
/*
	"Hemi" JavaScript Framework
	Engine for Web Applications 3.1
	Composite file "hemi.comp.js" release: 3.1.9
	Copyright 2002 - 2010. All Rights Reserved.
	Author: Stephen W. Cote
	Email: sw.cote@gmail.com
	Project: http://www.whitefrost.com/Hemi/
	BSD License: http://www.whitefrost.com/Hemi.license.txt
*/
(function(){H.include("hemi.data.validator.definitions");H.namespace("data.validator",H,{service:null,serviceImpl:
function(){var t=this,_x=H.xml,_m=H.message.service;t.p={p:0,l:0,a:0};t.G=function(o){return t.Q(o,null,0);};t.S=function(o,v){return t.Q(o,1,v);};t.Q=function(o,q,v){var r;switch(o.type){case "textarea":case "password":case "text":if(!q)r=o.value;else r=o.value=v;break;default:return 0;break;}return r;};t.getPattern=function(i){return H.data.validator.definitions.service.o.patterns[i];};t.getValidationErrorText=function(o){var r,i,p;if(!D.TO(o)&&!D.TS(o)){return "Invalid field reference";}if(D.TS(o))i=o;else i=o.getAttribute("pattern-id");if(!i){return "Field doesn't define a validation pattern id";}p=t.getPattern(i);if(!D.TO(p)){return "Pattern id '"+i+"' is not a valid id.";}if(p.error)r=p.error;else r="Undefined error for "+i;return r;};t.getIsWebSafe=function(o){return t.validateField(o,"web-safe");};t.validateField=function(o,i){var r=0,ir=1,tir,pid=0,po,v,c;if(!D.TO(o)){_m.S("Invalid field reference in validateField.","200.4",1);return 0;}if(D.TS(i))pid=i;else pid=o.getAttribute("pattern-id");if(!pid){_m.S("Skipping empty pattern","200.1");return 1;}po=t.getPattern(pid);if(!D.TO(po)){_m.S("Pattern id '"+pid+"' is invalid in validateField.","200.4",1);return 0;}for(c=0;c<po.include.length;c++){tir=t.validateField(o,po.include[c]);if(ir&&!tir)ir=0;}v=t.G(o);if(D.TN(v)&&v==0){return 1;}if(po.match){try{re=new RegExp(po.match);switch(po.type){case "replace":r=1;if(D.TS(po.replace)){v=v.replace(re,po.replace);t.S(o,v);}break;case "bool":if((po.allow_null&&v.length==0)||(v.match(re)!=null)==po.comp){r=1;}break;}}catch(e){_m.S("Error in validator.validateField::"+(e.description?e.description:e.message),"200.4",1);}}if(po.type=="none")r=1;if(r&&!ir)r=0;return r;};H.IM(t,"base_object","xhtml_validator","3.1.9");H.registry.service.addObject(t);t.r=4;}},1);}());
/* End Hemi Framework 3.1 */

