var Spry;
if(!Spry){
Spry={};
}
if(!Spry.Widget){
Spry.Widget={};
}
Spry.Widget.BrowserSniff=function(){
var b=navigator.appName.toString();
var up=navigator.platform.toString();
var ua=navigator.userAgent.toString();
this.mozilla=this.ie=this.opera=r=false;
var _4=/Opera.([0-9\.]*)/i;
var _5=/MSIE.([0-9\.]*)/i;
var _6=/gecko/i;
var _7=/safari\/([\d\.]*)/i;
if(ua.match(_4)){
r=ua.match(_4);
this.opera=true;
this.version=parseFloat(r[1]);
}else{
if(ua.match(_5)){
r=ua.match(_5);
this.ie=true;
this.version=parseFloat(r[1]);
}else{
if(ua.match(_7)){
this.safari=true;
this.version=1.4;
}else{
if(ua.match(_6)){
var _8=/rv:\s*([0-9\.]+)/i;
r=ua.match(_8);
this.mozilla=true;
this.version=parseFloat(r[1]);
}
}
}
}
this.windows=this.mac=this.linux=false;
this.Platform=ua.match(/windows/i)?"windows":(ua.match(/linux/i)?"linux":(ua.match(/mac/i)?"mac":ua.match(/unix/i)?"unix":"unknown"));
this[this.Platform]=true;
this.v=this.version;
if(this.safari&&this.mac&&this.mozilla){
this.mozilla=false;
}
};
Spry.is=new Spry.Widget.BrowserSniff();
Spry.Widget.ValidationTextarea=function(_9,_a){
_a=_a||{};
this.flags={locked:false};
this.options={};
this.element=_9;
this.init(_9);
if(!this.isBrowserSupported()){
return;
}
_a.useCharacterMasking=Spry.Widget.Utils.firstValid(_a.useCharacterMasking,true);
_a.hint=Spry.Widget.Utils.firstValid(_a.hint,"");
_a.isRequired=Spry.Widget.Utils.firstValid(_a.isRequired,true);
_a.additionalError=Spry.Widget.Utils.firstValid(_a.additionalError,false);
Spry.Widget.Utils.setOptions(this,_a);
Spry.Widget.Utils.setOptions(this.options,_a);
if(_a.additionalError){
this.additionalError=this.getElement(_a.additionalError);
}
var _b=["submit"].concat(Spry.Widget.Utils.firstValid(this.options.validateOn,[]));
_b=_b.join(",");
this.validateOn=0;
this.validateOn=this.validateOn|(_b.indexOf("submit")!=-1?Spry.Widget.ValidationTextarea.ONSUBMIT:0);
this.validateOn=this.validateOn|(_b.indexOf("blur")!=-1?Spry.Widget.ValidationTextarea.ONBLUR:0);
this.validateOn=this.validateOn|(_b.indexOf("change")!=-1?Spry.Widget.ValidationTextarea.ONCHANGE:0);
if(Spry.Widget.ValidationTextarea.onloadDidFire){
this.attachBehaviors();
}else{
Spry.Widget.ValidationTextarea.loadQueue.push(this);
}
};
Spry.Widget.ValidationTextarea.ONCHANGE=1;
Spry.Widget.ValidationTextarea.ONBLUR=2;
Spry.Widget.ValidationTextarea.ONSUBMIT=4;
Spry.Widget.ValidationTextarea.INITIAL="Initial";
Spry.Widget.ValidationTextarea.REQUIRED="Required";
Spry.Widget.ValidationTextarea.INVALID="Invalid Format";
Spry.Widget.ValidationTextarea.MINIMUM="Minimum Number of Chars Not Met";
Spry.Widget.ValidationTextarea.MAXIMUM="Maximum Number of Chars Exceeded";
Spry.Widget.ValidationTextarea.VALID="Valid";
Spry.Widget.ValidationTextarea.prototype.init=function(_c){
this.element=this.getElement(_c);
this.event_handlers=[];
this.requiredClass="textareaRequiredState";
this.invalidCharsMaxClass="textareaMaxCharsState";
this.invalidCharsMinClass="textareaMinCharsState";
this.validClass="textareaValidState";
this.focusClass="textareaFocusState";
this.hintClass="textareaHintState";
this.textareaFlashClass="textareaFlashState";
this.isMaxInvalid=false;
this.isMinInvalid=false;
this.isRequireInvalid=false;
this.safariClicked=false;
this.state=Spry.Widget.ValidationTextarea.INITIAL;
};
Spry.Widget.ValidationTextarea.prototype.destroy=function(){
for(var i=0;i<this.event_handlers.length;i++){
Spry.Widget.Utils.removeEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][2],false);
}
try{
delete this.element;
}
catch(err){
}
try{
delete this.input;
}
catch(err){
}
try{
delete this.counterEl;
}
catch(err){
}
try{
delete this.form;
}
catch(err){
}
try{
delete this.event_handlers;
}
catch(err){
}
try{
this.cursorPosition.destroy();
}
catch(err){
}
try{
delete this.cursorPosition;
}
catch(err){
}
try{
this.initialCursor.destroy();
}
catch(err){
}
try{
delete this.initialCursor;
}
catch(err){
}
var q=Spry.Widget.Form.onSubmitWidgetQueue;
var _f=q.length;
for(var i=0;i<_f;i++){
if(q[i]==this){
q.splice(i,1);
break;
}
}
};
Spry.Widget.ValidationTextarea.prototype.isDisabled=function(){
return this.input&&(this.input.disabled||this.input.readOnly)||!this.input;
};
Spry.Widget.ValidationTextarea.prototype.getElement=function(ele){
if(ele&&typeof ele=="string"){
return document.getElementById(ele);
}
return ele;
};
Spry.Widget.ValidationTextarea.addLoadListener=function(_12){
if(typeof window.addEventListener!="undefined"){
window.addEventListener("load",_12,false);
}else{
if(typeof document.addEventListener!="undefined"){
document.addEventListener("load",_12,false);
}else{
if(typeof window.attachEvent!="undefined"){
window.attachEvent("onload",_12);
}
}
}
};
Spry.Widget.ValidationTextarea.processLoadQueue=function(_13){
Spry.Widget.ValidationTextarea.onloadDidFire=true;
var q=Spry.Widget.ValidationTextarea.loadQueue;
var _15=q.length;
for(var i=0;i<_15;i++){
q[i].attachBehaviors();
}
};
Spry.Widget.ValidationTextarea.onloadDidFire=false;
Spry.Widget.ValidationTextarea.loadQueue=[];
Spry.Widget.ValidationTextarea.addLoadListener(Spry.Widget.ValidationTextarea.processLoadQueue);
Spry.Widget.ValidationTextarea.addLoadListener(function(){
Spry.Widget.Utils.addEventListener(window,"unload",Spry.Widget.Form.destroyAll,false);
});
Spry.Widget.ValidationTextarea.prototype.isBrowserSupported=function(){
return Spry.is.ie&&Spry.is.v>=5&&Spry.is.windows||Spry.is.mozilla&&Spry.is.v>=1.4||Spry.is.safari||Spry.is.opera&&Spry.is.v>=9;
};
Spry.Widget.ValidationTextarea.prototype.attachBehaviors=function(){
if(this.element){
if(this.element.nodeName=="TEXTAREA"){
this.input=this.element;
}else{
this.input=Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel(this.element,"TEXTAREA");
}
}
if(this.options&&this.options.counterType&&(this.options.counterType=="chars_count"||this.options.counterType=="chars_remaining")){
this.counterEl=document.getElementById(this.options.counterId);
this.counterChar();
}
if(this.input){
this.input.setAttribute("AutoComplete","off");
this.putHint();
this.cursorPosition=new Spry.Widget.SelectionDescriptor(this.input);
var _17=this;
this.event_handlers=[];
if(this.useCharacterMasking){
if(Spry.is.ie){
this.event_handlers.push([this.input,"propertychange",function(e){
return _17.onKeyEvent(e||event);
}]);
this.event_handlers.push([this.input,"drop",function(e){
return _17.onDrop(e||event);
}]);
this.event_handlers.push([this.input,"keypress",function(e){
return _17.onKeyPress(e||event);
}]);
}else{
this.event_handlers.push([this.input,"keydown",function(e){
return _17.onKeyDown(e);
}]);
this.event_handlers.push([this.input,"keypress",function(e){
return _17.safariKeyPress(e);
}]);
this.event_handlers.push([this.input,"keyup",function(e){
return _17.safariValidate(e);
}]);
if(Spry.is.safari){
this.event_handlers.push([this.input,"mouseup",function(e){
return _17.safariMouseUp(e);
}]);
this.event_handlers.push([this.input,"mousedown",function(e){
return _17.safariMouseDown(e);
}]);
}else{
this.event_handlers.push([this.input,"dragdrop",function(e){
return _17.onKeyEvent(e);
}]);
this.event_handlers.push([this.input,"dragenter",function(e){
_17.removeHint();
return _17.onKeyDown(e);
}]);
this.event_handlers.push([this.input,"dragexit",function(e){
return _17.putHint();
}]);
}
}
this.event_handlers.push([this.input,"keydown",function(e){
return _17.onKeyDown(e||event);
}]);
}
this.event_handlers.push([this.input,"focus",function(e){
return _17.onFocus(e||event);
}]);
this.event_handlers.push([this.input,"mousedown",function(e){
return _17.onMouseDown(e||event);
}]);
this.event_handlers.push([this.input,"blur",function(e){
return _17.onBlur(e||event);
}]);
if(this.validateOn&Spry.Widget.ValidationTextarea.ONCHANGE){
if(Spry.is.ie){
this.event_handlers.push([this.input,"propertychange",function(e){
return _17.onChange(e||event);
}]);
this.event_handlers.push([this.input,"drop",function(e){
return _17.onChange(e||event);
}]);
}else{
this.event_handlers.push([this.input,"keydown",function(e){
return _17.onKeyDown(e);
}]);
this.event_handlers.push([this.input,"keypress",function(e){
return _17.safariChangeKeyPress(e);
}]);
this.event_handlers.push([this.input,"keyup",function(e){
return _17.safariChangeValidate(e);
}]);
if(Spry.is.safari){
this.event_handlers.push([this.input,"mouseup",function(e){
return _17.safariChangeMouseUp(e);
}]);
this.event_handlers.push([this.input,"mousedown",function(e){
return _17.safariMouseDown(e);
}]);
}else{
this.event_handlers.push([this.input,"dragdrop",function(e){
return _17.onChange(e);
}]);
this.event_handlers.push([this.input,"dragenter",function(e){
_17.removeHint();
return _17.onKeyDown(e);
}]);
this.event_handlers.push([this.input,"dragexit",function(e){
return _17.putHint();
}]);
}
}
}
if(!(this.validateOn&Spry.Widget.ValidationTextarea.ONCHANGE)&&!this.useCharacterMasking){
if(Spry.is.ie){
this.event_handlers.push([this.input,"propertychange",function(e){
return _17.counterChar();
}]);
this.event_handlers.push([this.input,"drop",function(e){
return _17.counterChar();
}]);
}else{
this.event_handlers.push([this.input,"keypress",function(e){
return _17.counterChar();
}]);
this.event_handlers.push([this.input,"keyup",function(e){
return _17.counterChar();
}]);
if(Spry.is.safari){
this.event_handlers.push([this.input,"mouseup",function(e){
return _17.counterChar();
}]);
}else{
this.event_handlers.push([this.input,"dragdrop",function(e){
return _17.counterChar();
}]);
}
}
}
for(var i=0;i<this.event_handlers.length;i++){
Spry.Widget.Utils.addEventListener(this.event_handlers[i][0],this.event_handlers[i][1],this.event_handlers[i][2],false);
}
this.form=Spry.Widget.Utils.getFirstParentWithNodeName(this.input,"FORM");
if(this.form){
if(!this.form.attachedSubmitHandler&&!this.form.onsubmit){
this.form.onsubmit=function(e){
e=e||event;
return Spry.Widget.Form.onSubmit(e,e.srcElement||e.currentTarget);
};
this.form.attachedSubmitHandler=true;
}
if(!this.form.attachedResetHandler){
Spry.Widget.Utils.addEventListener(this.form,"reset",function(e){
e=e||event;
return Spry.Widget.Form.onReset(e,e.srcElement||e.currentTarget);
},false);
this.form.attachedResetHandler=true;
}
Spry.Widget.Form.onSubmitWidgetQueue.push(this);
}
}
this.saveState();
};
Spry.Widget.ValidationTextarea.prototype.onTyping=function(e){
if(this.input.disabled==true||this.input.readOnly==true){
return;
}
if(!this.initialCursor){
this.initialCursor=this.cursorPosition;
}
if(this.flags.locked){
return true;
}
var val=this.input.value;
var ret=true;
if(this.flags.hintOn){
return true;
}
if(e&&this.input&&this.options&&this.options.maxChars>0&&ret){
if(val.length>this.options.maxChars&&((!Spry.Widget.Utils.isSpecialKey(e)&&this.cursorPosition.start==this.cursorPosition.end)||(Spry.Widget.Utils.isSpecialKey(e)&&val!=this.initialValue)||this.cursorPosition.start!=this.cursorPosition.end)){
this.flags.locked=true;
var _3d=this.initialValue;
var _3e=this.initialCursor.start;
var end=this.initialCursor.end;
if(_3d.length&&this.initialCursor.end<_3d.length){
var tmp=end-_3e+this.options.maxChars-_3d.length;
var _41=_3d.substring(0,_3e)+val.substring(_3e,_3e+tmp)+_3d.substring(end,_3d.length<this.options.maxChars?_3d.length:this.options.maxChars);
end=_3e+tmp;
}else{
var _42=val.substring(0,this.options.maxChars);
end=_3e=this.options.maxChars;
}
if(Spry.is.ie){
this.input.innerText=_42;
}else{
this.input.value=_42;
}
this.redTextFlash();
this.cursorPosition.moveTo(end,end);
this.flags.locked=false;
ret=false;
}else{
this.setState(Spry.Widget.ValidationTextarea.VALID);
this.isMaxInvalid=false;
}
}
this.counterChar();
return ret;
};
Spry.Widget.ValidationTextarea.prototype.validateMinRequired=function(val){
var _44=false;
if(typeof this.notFireMinYet=="undefined"){
this.notFireMinYet=false;
}else{
_44=true;
this.notFireMinYet=true;
}
if(this.onBlurOn){
this.notFireMinYet=true;
}else{
if(!this.onKeyEventOn){
this.notFireMinYet=true;
}
}
if(this.input&&this.options&&this.options.isRequired){
if(val.length>0&&this.isRequireInvalid&&(!this.hint||(this.hint&&!this.flags.hintOn)||(this.hint&&val!=this.hint))){
this.switchClassName(this.validClass);
this.setState(Spry.Widget.ValidationTextarea.VALID);
this.isRequireInvalid=false;
}else{
if((val.length==0||!(!this.hint||(this.hint&&!this.flags.hintOn)||(this.hint&&val!=this.hint)))&&(!this.isRequireInvalid||_44)){
if(this.notFireMinYet||Spry.is.ie){
this.switchClassName(this.requiredClass);
this.setState(Spry.Widget.ValidationTextarea.REQUIRED);
}
this.isRequireInvalid=true;
this.isMinInvalid=false;
}
}
}
if(this.input&&this.options&&this.options.minChars>0&&!this.isRequireInvalid){
if(val.length>=this.options.minChars&&(!this.hint||(this.hint&&!this.flags.hintOn)||(this.hint&&val!=this.hint))&&this.isMinInvalid){
this.switchClassName(this.validClass);
this.setState(Spry.Widget.ValidationTextarea.VALID);
this.isMinInvalid=false;
}else{
if((val.length<this.options.minChars||(this.hint&&val==this.hint&&this.flags.hintOn))&&!this.isMinInvalid){
this.switchClassName(this.invalidCharsMinClass);
this.setState(Spry.Widget.ValidationTextarea.MINIMUM);
this.isMinInvalid=true;
}
}
}
};
Spry.Widget.ValidationTextarea.prototype.counterChar=function(){
if(!this.counterEl||!this.options||!this.options.counterType||(this.options.counterType!="chars_remaining"&&this.options.counterType!="chars_count")){
return;
}
if(this.options.counterType=="chars_remaining"){
if(this.options.maxChars>0){
if(this.flags.hintOn){
this.setCounterElementValue(this.options.maxChars);
}else{
if(this.options.maxChars>this.input.value.length){
this.setCounterElementValue(this.options.maxChars-this.input.value.length);
}else{
this.setCounterElementValue(0);
}
}
}
}else{
if(this.flags.hintOn){
this.setCounterElementValue(0);
}else{
if(this.useCharacterMasking&&typeof this.options.maxChars!="undefined"&&this.options.maxChars<this.input.value.length){
this.setCounterElementValue(this.options.maxChars);
}else{
this.setCounterElementValue(this.input.value.length);
}
}
}
};
Spry.Widget.ValidationTextarea.prototype.setCounterElementValue=function(val){
if(this.counterEl.nodeName.toLowerCase()!="input"&&this.counterEl.nodeName.toLowerCase()!="textarea"&&this.counterEl.nodeName.toLowerCase()!="select"&&this.counterEl.nodeName.toLowerCase()!="img"){
this.counterEl.innerHTML=val;
}
};
Spry.Widget.ValidationTextarea.prototype.reset=function(){
this.removeHint();
this.removeClassName(this.requiredClass);
this.removeClassName(this.invalidCharsMinClass);
this.removeClassName(this.invalidCharsMaxClass);
this.removeClassName(this.validClass);
this.setState(Spry.Widget.ValidationTextarea.INITIAL);
var _46=this;
setTimeout(function(){
_46.putHint();
_46.counterChar();
},10);
};
Spry.Widget.ValidationTextarea.prototype.validate=function(){
if(this.input.disabled==true||this.input.readOnly==true){
return true;
}
var val=this.input.value;
this.validateMinRequired(val);
var ret=!this.isMinInvalid&&!this.isRequireInvalid;
if(ret&&this.options.maxChars>0&&!this.useCharacterMasking){
if(val.length<=this.options.maxChars||(this.hint&&this.hint==val&&this.flags.hintOn)){
this.switchClassName(this.validClass);
this.setState(Spry.Widget.ValidationTextarea.VALID);
this.isMaxInvalid=false;
}else{
this.switchClassName(this.invalidCharsMaxClass);
this.setState(Spry.Widget.ValidationTextarea.MAXIMUM);
this.isMaxInvalid=true;
}
}
ret=ret&&!this.isMaxInvalid;
if(ret){
this.switchClassName(this.validClass);
}
this.counterChar();
return ret;
};
Spry.Widget.ValidationTextarea.prototype.setState=function(_49){
this.state=_49;
};
Spry.Widget.ValidationTextarea.prototype.getState=function(){
return this.state;
};
Spry.Widget.ValidationTextarea.prototype.removeHint=function(){
if(this.flags.hintOn){
this.flags.locked=true;
this.input.value="";
this.flags.locked=false;
this.flags.hintOn=false;
this.removeClassName(this.hintClass);
}
};
Spry.Widget.ValidationTextarea.prototype.putHint=function(){
if(this.hint&&this.input.value==""){
this.flags.hintOn=true;
this.input.value=this.hint;
this.addClassName(this.hintClass);
}
};
Spry.Widget.ValidationTextarea.prototype.redTextFlash=function(){
var _4a=this;
this.addClassName(this.textareaFlashClass);
setTimeout(function(){
_4a.removeClassName(_4a.textareaFlashClass);
},200);
};
Spry.Widget.ValidationTextarea.prototype.onKeyPress=function(e){
if(Spry.is.ie&&Spry.is.windows&&e.keyCode==13){
if((this.initialCursor.length+this.options.maxChars-this.input.value.length)<2){
Spry.Widget.Utils.stopEvent(e);
return false;
}
}
};
Spry.Widget.ValidationTextarea.prototype.onKeyDown=function(e){
this.saveState();
this.keyCode=e.keyCode;
return true;
};
Spry.Widget.ValidationTextarea.prototype.onKeyEvent=function(e){
if(e.type=="propertychange"&&e.propertyName!="value"){
return true;
}
var _4e=this.onTyping(e);
if(!_4e){
Spry.Widget.Utils.stopEvent(e);
}
};
Spry.Widget.ValidationTextarea.prototype.onChange=function(e){
if(Spry.is.ie&&e&&e.type=="propertychange"&&e.propertyName!="value"){
return true;
}
if(this.flags.drop){
var _50=this;
setTimeout(function(){
_50.flags.drop=false;
_50.onChange(null);
},0);
return true;
}
if(this.flags.hintOn){
return true;
}
this.onKeyEventOn=true;
var _51=this.validate();
this.onKeyEventOn=false;
return _51;
};
Spry.Widget.ValidationTextarea.prototype.onMouseDown=function(e){
if(this.flags.active){
this.saveState();
}
};
Spry.Widget.ValidationTextarea.prototype.onDrop=function(e){
this.flags.drop=true;
this.removeHint();
if(Spry.is.ie){
var rng=document.body.createTextRange();
rng.moveToPoint(e.x,e.y);
rng.select();
}
this.saveState();
this.flags.active=true;
this.addClassName(this.focusClass);
};
Spry.Widget.ValidationTextarea.prototype.onFocus=function(e){
if(this.flags.drop){
return;
}
this.removeHint();
this.saveState();
this.flags.active=true;
this.addClassName(this.focusClass);
};
Spry.Widget.ValidationTextarea.prototype.onBlur=function(e){
this.removeClassName(this.focusClass);
if(this.validateOn&Spry.Widget.ValidationTextarea.ONBLUR){
this.onBlurOn=true;
this.validate();
this.onBlurOn=false;
}
this.flags.active=false;
var _57=this;
setTimeout(function(){
_57.putHint();
},10);
};
Spry.Widget.ValidationTextarea.prototype.safariMouseDown=function(e){
this.safariClicked=true;
};
Spry.Widget.ValidationTextarea.prototype.safariChangeMouseUp=function(e){
if(!this.safariClicked){
this.onKeyDown(e);
return this.safariChangeValidate(e,false);
}else{
this.safariClicked=false;
return true;
}
};
Spry.Widget.ValidationTextarea.prototype.safariMouseUp=function(e){
if(!this.safariClicked){
this.onKeyDown(e);
return this.safariValidate(e,false);
}else{
this.safariClicked=false;
return true;
}
};
Spry.Widget.ValidationTextarea.prototype.safariKeyPress=function(e){
this.safariFlag=new Date();
return this.safariValidate(e,true);
};
Spry.Widget.ValidationTextarea.prototype.safariValidate=function(e,_5d){
if(e.keyCode&&Spry.Widget.Utils.isSpecialKey(e)&&e.keyCode!=8&&e.keyCode!=46){
return true;
}
var _5e=this.onTyping(e);
if(new Date()-this.safariFlag<1000&&_5d){
var _5f=this;
setTimeout(function(){
_5f.safariValidate(e,false);
},1000);
}
return _5e;
};
Spry.Widget.ValidationTextarea.prototype.safariChangeKeyPress=function(e){
this.safariChangeFlag=new Date();
return this.safariChangeValidate(e,true);
};
Spry.Widget.ValidationTextarea.prototype.safariChangeValidate=function(e,_62){
if(e.keyCode&&Spry.Widget.Utils.isSpecialKey(e)&&e.keyCode!=8&&e.keyCode!=46){
return true;
}
var _63=this.onChange(e);
if(new Date()-this.safariChangeFlag<1000&&_62){
var _64=this;
setTimeout(function(){
_64.safariChangeValidate(e,false);
},1000-new Date()+this.safariChangeFlag);
}
return _63;
};
Spry.Widget.ValidationTextarea.prototype.saveState=function(e){
if(this.options.maxChars>0&&this.input.value.length>this.options.maxChars){
return;
}
this.cursorPosition.update();
if(!this.flags.hintOn){
this.initialValue=this.input.value;
}else{
this.initialValue="";
}
this.initialCursor=this.cursorPosition;
return true;
};
Spry.Widget.ValidationTextarea.prototype.checkClassName=function(ele,_67){
if(!ele||!_67){
return false;
}
if(typeof ele=="string"){
ele=document.getElementById(ele);
if(!ele){
return false;
}
}
if(!ele.className){
ele.className=" ";
}
return ele;
};
Spry.Widget.ValidationTextarea.prototype.switchClassName=function(_68){
var _69=[this.invalidCharsMaxClass,this.validClass,this.requiredClass,this.invalidCharsMinClass];
for(var k=0;k<_69.length;k++){
if(_69[k]!=_68){
this.removeClassName(_69[k]);
}
}
this.addClassName(_68);
};
Spry.Widget.ValidationTextarea.prototype.addClassName=function(_6b){
var ele=this.checkClassName(this.element,_6b);
var add=this.checkClassName(this.additionalError,_6b);
if(!ele||ele.className.search(new RegExp("\\b"+_6b+"\\b"))!=-1){
return;
}
this.element.className+=" "+_6b;
if(add){
add.className+=" "+_6b;
}
};
Spry.Widget.ValidationTextarea.prototype.removeClassName=function(_6e){
var ele=this.checkClassName(this.element,_6e);
var add=this.checkClassName(this.additionalError,_6e);
if(!ele){
return;
}
ele.className=ele.className.replace(new RegExp("\\s*\\b"+_6e+"\\b","g"),"");
if(add){
add.className=add.className.replace(new RegExp("\\s*\\b"+_6e+"\\b","g"),"");
}
};
Spry.Widget.SelectionDescriptor=function(_71){
this.element=_71;
this.update();
};
Spry.Widget.SelectionDescriptor.prototype.update=function(){
if(Spry.is.ie&&Spry.is.windows){
if(this.element.nodeName=="TEXTAREA"){
var sel=this.element.ownerDocument.selection;
if(sel.type!="None"){
var _73=this.element.ownerDocument.selection.createRange();
if(_73.parentElement()==this.element){
var _74=this.element.ownerDocument.body.createTextRange();
_74.moveToElementText(this.element);
for(var _75=0;_74.compareEndPoints("StartToStart",_73)<0;_75++){
_74.moveStart("character",1);
}
this.start=_75;
_74=this.element.ownerDocument.body.createTextRange();
_74.moveToElementText(this.element);
for(var _76=0;_74.compareEndPoints("StartToEnd",_73)<0;_76++){
_74.moveStart("character",1);
}
this.end=_76;
this.length=this.end-this.start;
this.text=_73.text;
}
}
}else{
if(this.element.nodeName=="INPUT"){
var sel=this.element.ownerDocument.selection;
this.range=this.element.ownerDocument.selection.createRange();
this.length=this.range.text.length;
var _78=this.range.duplicate();
this.start=-_78.moveStart("character",-10000);
_78=this.range.duplicate();
_78.collapse(false);
this.end=-_78.moveStart("character",-10000);
this.text=this.range.text;
}
}
}else{
var tmp=this.element;
var _7a=0;
var _7b=0;
try{
_7a=tmp.selectionStart;
}
catch(err){
}
try{
_7b=tmp.selectionEnd;
}
catch(err){
}
if(Spry.is.safari){
if(_7a==2147483647){
_7a=0;
}
if(_7b==2147483647){
_7b=0;
}
}
this.start=_7a;
this.end=_7b;
this.length=_7b-_7a;
this.text=this.element.value.substring(_7a,_7b);
}
};
Spry.Widget.SelectionDescriptor.prototype.destroy=function(){
try{
delete this.range;
}
catch(err){
}
try{
delete this.element;
}
catch(err){
}
};
Spry.Widget.SelectionDescriptor.prototype.moveTo=function(_7c,end){
if(Spry.is.ie&&Spry.is.windows){
if(this.element.nodeName=="TEXTAREA"){
var _7e=this.element.createTextRange();
this.range=this.element.createTextRange();
this.range.move("character",_7c);
this.range.moveEnd("character",end-_7c);
var c1=this.range.compareEndPoints("StartToStart",_7e);
if(c1<0){
this.range.setEndPoint("StartToStart",_7e);
}
var c2=this.range.compareEndPoints("EndToEnd",_7e);
if(c2>0){
this.range.setEndPoint("EndToEnd",_7e);
}
}else{
if(this.element.nodeName=="INPUT"){
this.range=this.element.ownerDocument.selection.createRange();
this.range.move("character",-10000);
this.start=this.range.moveStart("character",_7c);
this.end=this.start+this.range.moveEnd("character",end-_7c);
}
}
this.range.select();
}else{
this.start=_7c;
try{
this.element.selectionStart=_7c;
}
catch(err){
}
this.end=end;
try{
this.element.selectionEnd=end;
}
catch(err){
}
}
this.ignore=true;
this.update();
};
if(!Spry.Widget.Form){
Spry.Widget.Form={};
}
if(!Spry.Widget.Form.onSubmitWidgetQueue){
Spry.Widget.Form.onSubmitWidgetQueue=[];
}
if(!Spry.Widget.Form.validate){
Spry.Widget.Form.validate=function(_81){
var _82=true;
var _83=true;
var q=Spry.Widget.Form.onSubmitWidgetQueue;
var _85=q.length;
for(var i=0;i<_85;i++){
if(!q[i].isDisabled()&&q[i].form==_81){
_83=q[i].validate();
_82=_83&&_82;
}
}
return _82;
};
}
if(!Spry.Widget.Form.onSubmit){
Spry.Widget.Form.onSubmit=function(e,_88){
if(Spry.Widget.Form.validate(_88)==false){
return false;
}
return true;
};
}
if(!Spry.Widget.Form.onReset){
Spry.Widget.Form.onReset=function(e,_8a){
var q=Spry.Widget.Form.onSubmitWidgetQueue;
var _8c=q.length;
for(var i=0;i<_8c;i++){
if(!q[i].isDisabled()&&q[i].form==_8a&&typeof (q[i].reset)=="function"){
q[i].reset();
}
}
return true;
};
}
if(!Spry.Widget.Form.destroy){
Spry.Widget.Form.destroy=function(_8e){
var q=Spry.Widget.Form.onSubmitWidgetQueue;
for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){
if(q[i].form==_8e&&typeof (q[i].destroy)=="function"){
q[i].destroy();
i--;
}
}
};
}
if(!Spry.Widget.Form.destroyAll){
Spry.Widget.Form.destroyAll=function(){
var q=Spry.Widget.Form.onSubmitWidgetQueue;
for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){
if(typeof (q[i].destroy)=="function"){
q[i].destroy();
i--;
}
}
};
}
if(!Spry.Widget.Utils){
Spry.Widget.Utils={};
}
Spry.Widget.Utils.setOptions=function(obj,_94,_95){
if(!_94){
return;
}
for(var _96 in _94){
if(_95&&_94[_96]==undefined){
continue;
}
obj[_96]=_94[_96];
}
};
Spry.Widget.Utils.firstValid=function(){
var ret=null;
for(var i=0;i<Spry.Widget.Utils.firstValid.arguments.length;i++){
if(typeof (Spry.Widget.Utils.firstValid.arguments[i])!="undefined"){
ret=Spry.Widget.Utils.firstValid.arguments[i];
break;
}
}
return ret;
};
Spry.Widget.Utils.specialSafariNavKeys=",63232,63233,63234,63235,63272,63273,63275,63276,63277,63289,";
Spry.Widget.Utils.specialCharacters=",8,9,16,17,18,20,27,33,34,35,36,37,38,39,40,45,46,91,92,93,144,192,63232,";
Spry.Widget.Utils.specialCharacters+=Spry.Widget.Utils.specialSafariNavKeys;
Spry.Widget.Utils.isSpecialKey=function(ev){
return Spry.Widget.Utils.specialCharacters.indexOf(","+ev.keyCode+",")!=-1;
};
Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel=function(_9a,_9b){
var _9c=_9a.getElementsByTagName(_9b);
if(_9c){
return _9c[0];
}
return null;
};
Spry.Widget.Utils.getFirstParentWithNodeName=function(_9d,_9e){
while(_9d.parentNode&&_9d.parentNode.nodeName.toLowerCase()!=_9e.toLowerCase()&&_9d.parentNode.nodeName!="BODY"){
_9d=_9d.parentNode;
}
if(_9d.parentNode&&_9d.parentNode.nodeName.toLowerCase()==_9e.toLowerCase()){
return _9d.parentNode;
}else{
return null;
}
};
Spry.Widget.Utils.destroyWidgets=function(_9f){
if(typeof _9f=="string"){
_9f=document.getElementById(_9f);
}
var q=Spry.Widget.Form.onSubmitWidgetQueue;
for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){
if(typeof (q[i].destroy)=="function"&&Spry.Widget.Utils.contains(_9f,q[i].element)){
q[i].destroy();
i--;
}
}
};
Spry.Widget.Utils.contains=function(who,_a3){
if(typeof who.contains=="object"){
return _a3&&who&&(who==_a3||who.contains(_a3));
}else{
var el=_a3;
while(el){
if(el==who){
return true;
}
el=el.parentNode;
}
return false;
}
};
Spry.Widget.Utils.addEventListener=function(_a5,_a6,_a7,_a8){
try{
if(_a5.addEventListener){
_a5.addEventListener(_a6,_a7,_a8);
}else{
if(_a5.attachEvent){
_a5.attachEvent("on"+_a6,_a7,_a8);
}
}
}
catch(e){
}
};
Spry.Widget.Utils.removeEventListener=function(_a9,_aa,_ab,_ac){
try{
if(_a9.removeEventListener){
_a9.removeEventListener(_aa,_ab,_ac);
}else{
if(_a9.detachEvent){
_a9.detachEvent("on"+_aa,_ab,_ac);
}
}
}
catch(e){
}
};
Spry.Widget.Utils.stopEvent=function(ev){
try{
this.stopPropagation(ev);
this.preventDefault(ev);
}
catch(e){
}
};
Spry.Widget.Utils.stopPropagation=function(ev){
if(ev.stopPropagation){
ev.stopPropagation();
}else{
ev.cancelBubble=true;
}
};
Spry.Widget.Utils.preventDefault=function(ev){
if(ev.preventDefault){
ev.preventDefault();
}else{
ev.returnValue=false;
}
};


