var Spry;
if(!Spry){
Spry={};
}
if(!Spry.Widget){
Spry.Widget={};
}
Spry.Widget.ValidationSelect=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.ValidationSelect.ONSUBMIT:0);
this.validateOn=this.validateOn|(_3.indexOf("blur")!=-1?Spry.Widget.ValidationSelect.ONBLUR:0);
this.validateOn=this.validateOn|(_3.indexOf("change")!=-1?Spry.Widget.ValidationSelect.ONCHANGE:0);
if(Spry.Widget.ValidationSelect.onloadDidFire){
this.attachBehaviors();
}else{
Spry.Widget.ValidationSelect.loadQueue.push(this);
}
};
Spry.Widget.ValidationSelect.ONCHANGE=1;
Spry.Widget.ValidationSelect.ONBLUR=2;
Spry.Widget.ValidationSelect.ONSUBMIT=4;
Spry.Widget.ValidationSelect.prototype.init=function(_4){
this.element=this.getElement(_4);
this.selectElement=null;
this.form=null;
this.event_handlers=[];
this.requiredClass="selectRequiredState";
this.invalidClass="selectInvalidState";
this.focusClass="selectFocusState";
this.validClass="selectValidState";
this.emptyValue="";
this.invalidValue=null;
this.isRequired=true;
this.validateOn=["submit"];
this.validatedByOnChangeEvent=false;
};
Spry.Widget.ValidationSelect.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.selectElement;
}
catch(err){
}
try{
delete this.form;
}
catch(err){
}
try{
delete this.event_handlers;
}
catch(err){
}
var q=Spry.Widget.Form.onSubmitWidgetQueue;
var _5=q.length;
for(var i=0;i<_5;i++){
if(q[i]==this){
q.splice(i,1);
break;
}
}
};
Spry.Widget.ValidationSelect.onloadDidFire=false;
Spry.Widget.ValidationSelect.loadQueue=[];
Spry.Widget.ValidationSelect.prototype.getElement=function(_6){
if(_6&&typeof _6=="string"){
return document.getElementById(_6);
}
return _6;
};
Spry.Widget.ValidationSelect.processLoadQueue=function(_7){
Spry.Widget.ValidationSelect.onloadDidFire=true;
var q=Spry.Widget.ValidationSelect.loadQueue;
var _8=q.length;
for(var i=0;i<_8;i++){
q[i].attachBehaviors();
}
};
Spry.Widget.ValidationSelect.addLoadListener=function(_9){
if(typeof window.addEventListener!="undefined"){
window.addEventListener("load",_9,false);
}else{
if(typeof document.addEventListener!="undefined"){
document.addEventListener("load",_9,false);
}else{
if(typeof window.attachEvent!="undefined"){
window.attachEvent("onload",_9);
}
}
}
};
Spry.Widget.ValidationSelect.addLoadListener(Spry.Widget.ValidationSelect.processLoadQueue);
Spry.Widget.ValidationSelect.addLoadListener(function(){
Spry.Widget.Utils.addEventListener(window,"unload",Spry.Widget.Form.destroyAll,false);
});
Spry.Widget.ValidationSelect.prototype.attachBehaviors=function(){
if(this.element.nodeName=="SELECT"){
this.selectElement=this.element;
}else{
this.selectElement=Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel(this.element,"SELECT");
}
if(this.selectElement){
var _a=this;
this.event_handlers=[];
var _b="focus";
if(navigator.userAgent.toLowerCase().indexOf("msie 7.")!=-1){
_b="beforeactivate";
}
this.event_handlers.push([this.selectElement,_b,function(e){
if(_a.isDisabled()){
return true;
}
return _a.onFocus(e);
}]);
this.event_handlers.push([this.selectElement,"blur",function(e){
if(_a.isDisabled()){
return true;
}
return _a.onBlur(e);
}]);
if(this.validateOn&Spry.Widget.ValidationSelect.ONCHANGE){
this.event_handlers.push([this.selectElement,"change",function(e){
if(_a.isDisabled()){
return true;
}
return _a.onChange(e);
}]);
this.event_handlers.push([this.selectElement,"keypress",function(e){
if(_a.isDisabled()){
return true;
}
return _a.onChange(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.selectElement,"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.ValidationSelect.prototype.addClassName=function(_c,_d){
if(!_c||!_d||(_c.className&&_c.className.search(new RegExp("\\b"+_d+"\\b"))!=-1)){
return;
}
_c.className+=(_c.className?" ":"")+_d;
};
Spry.Widget.ValidationSelect.prototype.removeClassName=function(_e,_f){
if(!_e||!_f||(_e.className&&_e.className.search(new RegExp("\\b"+_f+"\\b"))==-1)){
return;
}
_e.className=_e.className.replace(new RegExp("\\s*\\b"+_f+"\\b","g"),"");
};
Spry.Widget.ValidationSelect.prototype.onFocus=function(e){
this.hasFocus=true;
this.validatedByOnChangeEvent=false;
this.addClassName(this.element,this.focusClass);
};
Spry.Widget.ValidationSelect.prototype.onBlur=function(e){
this.hasFocus=false;
var _10=false;
if(this.validateOn&Spry.Widget.ValidationSelect.ONBLUR){
_10=true;
}
if(_10&&!this.validatedByOnChangeEvent){
this.validate();
}
this.removeClassName(this.element,this.focusClass);
};
Spry.Widget.ValidationSelect.prototype.onChange=function(e){
this.hasFocus=false;
this.validate();
this.validatedByOnChangeEvent=true;
};
Spry.Widget.ValidationSelect.prototype.reset=function(){
this.removeClassName(this.element,this.requiredClass);
this.removeClassName(this.element,this.invalidClass);
this.removeClassName(this.element,this.validClass);
};
Spry.Widget.ValidationSelect.prototype.validate=function(){
this.removeClassName(this.element,this.requiredClass);
this.removeClassName(this.element,this.invalidClass);
this.removeClassName(this.element,this.validClass);
if(this.isRequired){
if(this.selectElement.options.length==0||this.selectElement.selectedIndex==-1){
this.addClassName(this.element,this.requiredClass);
return false;
}
if(this.selectElement.options[this.selectElement.selectedIndex].getAttribute("value")==null){
this.addClassName(this.element,this.requiredClass);
return false;
}
if(this.selectElement.options[this.selectElement.selectedIndex].value==this.emptyValue){
this.addClassName(this.element,this.requiredClass);
return false;
}
if(this.selectElement.options[this.selectElement.selectedIndex].disabled){
this.addClassName(this.element,this.requiredClass);
return false;
}
}
if(this.invalidValue){
if(this.selectElement.options.length>0&&this.selectElement.selectedIndex!=-1&&this.selectElement.options[this.selectElement.selectedIndex].value==this.invalidValue){
this.addClassName(this.element,this.invalidClass);
return false;
}
}
this.addClassName(this.element,this.validClass);
return true;
};
Spry.Widget.ValidationSelect.prototype.isDisabled=function(){
return this.selectElement.disabled;
};
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(_11){
var _12=true;
var _13=true;
var q=Spry.Widget.Form.onSubmitWidgetQueue;
var _14=q.length;
for(var i=0;i<_14;i++){
if(!q[i].isDisabled()&&q[i].form==_11){
_13=q[i].validate();
_12=_13&&_12;
}
}
return _12;
};
}
if(!Spry.Widget.Form.onSubmit){
Spry.Widget.Form.onSubmit=function(e,_15){
if(Spry.Widget.Form.validate(_15)==false){
return false;
}
return true;
};
}
if(!Spry.Widget.Form.onReset){
Spry.Widget.Form.onReset=function(e,_16){
var q=Spry.Widget.Form.onSubmitWidgetQueue;
var _17=q.length;
for(var i=0;i<_17;i++){
if(!q[i].isDisabled()&&q[i].form==_16&&typeof (q[i].reset)=="function"){
q[i].reset();
}
}
return true;
};
}
if(!Spry.Widget.Form.destroy){
Spry.Widget.Form.destroy=function(_18){
var q=Spry.Widget.Form.onSubmitWidgetQueue;
for(var i=0;i<Spry.Widget.Form.onSubmitWidgetQueue.length;i++){
if(q[i].form==_18&&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,_19,_1a){
if(!_19){
return;
}
for(var _1b in _19){
if(_1a&&_19[_1b]==undefined){
continue;
}
obj[_1b]=_19[_1b];
}
};
Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel=function(_1c,_1d){
var _1e=_1c.getElementsByTagName(_1d);
if(_1e){
return _1e[0];
}
return null;
};
Spry.Widget.Utils.getFirstParentWithNodeName=function(_1f,_20){
while(_1f.parentNode&&_1f.parentNode.nodeName.toLowerCase()!=_20.toLowerCase()&&_1f.parentNode.nodeName!="BODY"){
_1f=_1f.parentNode;
}
if(_1f.parentNode&&_1f.parentNode.nodeName.toLowerCase()==_20.toLowerCase()){
return _1f.parentNode;
}else{
return null;
}
};
Spry.Widget.Utils.destroyWidgets=function(_21){
if(typeof _21=="string"){
_21=document.getElementById(_21);
}
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(_21,q[i].element)){
q[i].destroy();
i--;
}
}
};
Spry.Widget.Utils.contains=function(who,_22){
if(typeof who.contains=="object"){
return _22&&who&&(who==_22||who.contains(_22));
}else{
var el=_22;
while(el){
if(el==who){
return true;
}
el=el.parentNode;
}
return false;
}
};
Spry.Widget.Utils.addEventListener=function(_23,_24,_25,_26){
try{
if(_23.addEventListener){
_23.addEventListener(_24,_25,_26);
}else{
if(_23.attachEvent){
_23.attachEvent("on"+_24,_25,_26);
}
}
}
catch(e){
}
};
Spry.Widget.Utils.removeEventListener=function(_27,_28,_29,_2a){
try{
if(_27.removeEventListener){
_27.removeEventListener(_28,_29,_2a);
}else{
if(_27.detachEvent){
_27.detachEvent("on"+_28,_29,_2a);
}
}
}
catch(e){
}
};


