var Spry;
if(!Spry){
Spry={};
}
if(!Spry.Widget){
Spry.Widget={};
}
Spry.Widget.ValidationCheckbox=function(_1,_2){
this.init(_1);
Spry.Widget.Utils.setOptions(this,_2);
var _3=["submit"].concat(this.validateOn||[]);
_3=_3.join(",");
this.validateOn=0|(_3.indexOf("submit")!=-1?Spry.Widget.ValidationCheckbox.ONSUBMIT:0);
this.validateOn=this.validateOn|(_3.indexOf("blur")!=-1?Spry.Widget.ValidationCheckbox.ONBLUR:0);
this.validateOn=this.validateOn|(_3.indexOf("change")!=-1?Spry.Widget.ValidationCheckbox.ONCHANGE:0);
if(!isNaN(this.minSelections)){
this.minSelections=(this.minSelections>0)?parseInt(this.minSelections,10):null;
}
if(!isNaN(this.maxSelections)){
this.maxSelections=(this.maxSelections>0)?parseInt(this.maxSelections,10):null;
}
if(this.additionalError){
this.additionalError=this.getElement(this.additionalError);
}
if(Spry.Widget.ValidationCheckbox.onloadDidFire){
this.attachBehaviors();
}else{
Spry.Widget.ValidationCheckbox.loadQueue.push(this);
}
};
Spry.Widget.ValidationCheckbox.ONCHANGE=1;
Spry.Widget.ValidationCheckbox.ONBLUR=2;
Spry.Widget.ValidationCheckbox.ONSUBMIT=4;
Spry.Widget.ValidationCheckbox.prototype.init=function(_4){
this.element=this.getElement(_4);
this.checkboxElements=null;
this.additionalError=false;
this.form=null;
this.event_handlers=[];
this.hasFocus=false;
this.requiredClass="checkboxRequiredState";
this.minSelectionsClass="checkboxMinSelectionsState";
this.maxSelectionsClass="checkboxMaxSelectionsState";
this.focusClass="checkboxFocusState";
this.validClass="checkboxValidState";
this.isRequired=true;
this.minSelections=null;
this.maxSelections=null;
this.validateOn=["submit"];
};
Spry.Widget.ValidationCheckbox.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){
}
for(var i=0;i<this.checkboxElements.length;i++){
try{
delete this.checkboxElements[i];
}
catch(err){
}
}
try{
delete this.checkboxElements;
}
catch(err){
}
try{
delete this.form;
}
catch(err){
}
try{
delete this.event_handlers;
}
catch(err){
}
var q=Spry.Widget.Form.onSubmitWidgetQueue;
var _8=q.length;
for(var i=0;i<_8;i++){
if(q[i]==this){
q.splice(i,1);
break;
}
}
};
Spry.Widget.ValidationCheckbox.onloadDidFire=false;
Spry.Widget.ValidationCheckbox.loadQueue=[];
Spry.Widget.ValidationCheckbox.prototype.getElement=function(_a){
if(_a&&typeof _a=="string"){
return document.getElementById(_a);
}
return _a;
};
Spry.Widget.ValidationCheckbox.processLoadQueue=function(_b){
Spry.Widget.ValidationCheckbox.onloadDidFire=true;
var q=Spry.Widget.ValidationCheckbox.loadQueue;
var _d=q.length;
for(var i=0;i<_d;i++){
q[i].attachBehaviors();
}
};
Spry.Widget.ValidationCheckbox.addLoadListener=function(_f){
if(typeof window.addEventListener!="undefined"){
window.addEventListener("load",_f,false);
}else{
if(typeof document.addEventListener!="undefined"){
document.addEventListener("load",_f,false);
}else{
if(typeof window.attachEvent!="undefined"){
window.attachEvent("onload",_f);
}
}
}
};
Spry.Widget.ValidationCheckbox.addLoadListener(Spry.Widget.ValidationCheckbox.processLoadQueue);
Spry.Widget.ValidationCheckbox.addLoadListener(function(){
Spry.Widget.Utils.addEventListener(window,"unload",Spry.Widget.Form.destroyAll,false);
});
Spry.Widget.ValidationCheckbox.prototype.attachBehaviors=function(){
if(this.element.nodeName=="INPUT"){
this.checkboxElements=[this.element];
}else{
this.checkboxElements=this.getCheckboxes();
}
if(this.checkboxElements){
var _10=this;
this.event_handlers=[];
var _11=this.checkboxElements.length;
for(var i=0;i<_11;i++){
this.event_handlers.push([this.checkboxElements[i],"focus",function(e){
return _10.onFocus(e);
}]);
this.event_handlers.push([this.checkboxElements[i],"blur",function(e){
return _10.onBlur(e);
}]);
if(this.validateOn&Spry.Widget.ValidationCheckbox.ONCHANGE){
this.event_handlers.push([this.checkboxElements[i],"click",function(e){
return _10.onClick(e);
}]);
}
}
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.element,"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);
}
}
};
Spry.Widget.ValidationCheckbox.prototype.getCheckboxes=function(){
var _19;
var _1a=this.element.getElementsByTagName("INPUT");
if(_1a.length){
_19=[];
var _1b=_1a.length;
for(var i=0;i<_1b;i++){
if(_1a[i].type=="checkbox"){
_19.push(_1a[i]);
}
}
return _19;
}
return null;
};
Spry.Widget.ValidationCheckbox.prototype.addClassName=function(ele,_1e){
if(!ele||!_1e||(ele.className&&ele.className.search(new RegExp("\\b"+_1e+"\\b"))!=-1)){
return;
}
ele.className+=(ele.className?" ":"")+_1e;
};
Spry.Widget.ValidationCheckbox.prototype.removeClassName=function(ele,_20){
if(!ele||!_20||(ele.className&&ele.className.search(new RegExp("\\b"+_20+"\\b"))==-1)){
return;
}
ele.className=ele.className.replace(new RegExp("\\s*\\b"+_20+"\\b","g"),"");
};
Spry.Widget.ValidationCheckbox.prototype.onFocus=function(e){
var _22=(e.srcElement!=null)?e.srcElement:e.target;
if(_22.disabled){
return;
}
this.hasFocus=true;
this.addClassName(this.element,this.focusClass);
this.addClassName(this.additionalError,this.focusClass);
};
Spry.Widget.ValidationCheckbox.prototype.onBlur=function(e){
var _24=(e.srcElement!=null)?e.srcElement:e.target;
if(_24.disabled){
return;
}
this.hasFocus=false;
var _25=false;
if(this.validateOn&Spry.Widget.ValidationCheckbox.ONBLUR){
_25=true;
}
if(_25){
this.validate();
}
this.removeClassName(this.element,this.focusClass);
this.removeClassName(this.additionalError,this.focusClass);
};
Spry.Widget.ValidationCheckbox.prototype.onClick=function(e){
var _27=(e.srcElement!=null)?e.srcElement:e.target;
if(_27.disabled){
return;
}
this.validate();
};
Spry.Widget.ValidationCheckbox.prototype.reset=function(){
this.removeClassName(this.element,this.validClass);
this.removeClassName(this.element,this.requiredClass);
this.removeClassName(this.element,this.minSelectionsClass);
this.removeClassName(this.element,this.maxSelectionsClass);
this.removeClassName(this.additionalError,this.validClass);
this.removeClassName(this.additionalError,this.requiredClass);
this.removeClassName(this.additionalError,this.minSelectionsClass);
this.removeClassName(this.additionalError,this.maxSelectionsClass);
};
Spry.Widget.ValidationCheckbox.prototype.validate=function(){
this.reset();
var _28=0;
if(this.checkboxElements){
var _29=this.checkboxElements.length;
for(var i=0;i<_29;i++){
if(!this.checkboxElements[i].disabled&&this.checkboxElements[i].checked){
_28++;
}
}
}
if(this.isRequired){
if(_28==0){
this.addClassName(this.element,this.requiredClass);
this.addClassName(this.additionalError,this.requiredClass);
return false;
}
}
if(this.minSelections){
if(this.minSelections>_28){
this.addClassName(this.element,this.minSelectionsClass);
this.addClassName(this.additionalError,this.minSelectionsClass);
return false;
}
}
if(this.maxSelections){
if(this.maxSelections<_28){
this.addClassName(this.element,this.maxSelectionsClass);
this.addClassName(this.additionalError,this.maxSelectionsClass);
return false;
}
}
this.addClassName(this.element,this.validClass);
this.addClassName(this.additionalError,this.validClass);
return true;
};
Spry.Widget.ValidationCheckbox.prototype.isDisabled=function(){
var ret=true;
if(this.checkboxElements){
var _2c=this.checkboxElements.length;
for(var i=0;i<_2c;i++){
if(!this.checkboxElements[i].disabled){
ret=false;
break;
}
}
}
return ret;
};
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(_2e){
var _2f=true;
var _30=true;
var q=Spry.Widget.Form.onSubmitWidgetQueue;
var _32=q.length;
for(var i=0;i<_32;i++){
if(!q[i].isDisabled()&&q[i].form==_2e){
_30=q[i].validate();
_2f=_30&&_2f;
}
}
return _2f;
};
}
if(!Spry.Widget.Form.onSubmit){
Spry.Widget.Form.onSubmit=function(e,_35){
if(Spry.Widget.Form.validate(_35)==false){
return false;
}
return true;
};
}
if(!Spry.Widget.Form.onReset){
Spry.Widget.Form.onReset=function(e,_37){
var q=Spry.Widget.Form.onSubmitWidgetQueue;
var _39=q.length;
for(var i=0;i<_39;i++){
if(!q[i].isDisabled()&&q[i].form==_37&&typeof (q[i].reset)=="function"){
q[i].reset();
}
}
return true;
};
}
if(!Spry.Widget.Form.destroy){
Spry.Widget.Form.destroy=function(_3b){
var q=Spry.Widget.Form.onSubmitWidgetQueue;
for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){
if(q[i].form==_3b&&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,_41,_42){
if(!_41){
return;
}
for(var _43 in _41){
if(_42&&_41[_43]==undefined){
continue;
}
obj[_43]=_41[_43];
}
};
Spry.Widget.Utils.getFirstParentWithNodeName=function(_44,_45){
while(_44.parentNode&&_44.parentNode.nodeName.toLowerCase()!=_45.toLowerCase()&&_44.parentNode.nodeName!="BODY"){
_44=_44.parentNode;
}
if(_44.parentNode&&_44.parentNode.nodeName.toLowerCase()==_45.toLowerCase()){
return _44.parentNode;
}else{
return null;
}
};
Spry.Widget.Utils.destroyWidgets=function(_46){
if(typeof _46=="string"){
_46=document.getElementById(_46);
}
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(_46,q[i].element)){
q[i].destroy();
i--;
}
}
};
Spry.Widget.Utils.contains=function(who,_4a){
if(typeof who.contains=="object"){
return _4a&&who&&(who==_4a||who.contains(_4a));
}else{
var el=_4a;
while(el){
if(el==who){
return true;
}
el=el.parentNode;
}
return false;
}
};
Spry.Widget.Utils.addEventListener=function(_4c,_4d,_4e,_4f){
try{
if(_4c.addEventListener){
_4c.addEventListener(_4d,_4e,_4f);
}else{
if(_4c.attachEvent){
_4c.attachEvent("on"+_4d,_4e,_4f);
}
}
}
catch(e){
}
};
Spry.Widget.Utils.removeEventListener=function(_50,_51,_52,_53){
try{
if(_50.removeEventListener){
_50.removeEventListener(_51,_52,_53);
}else{
if(_50.detachEvent){
_50.detachEvent("on"+_51,_52,_53);
}
}
}
catch(e){
}
};


