/*
	Copyright (c) 2004-2008, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojox.wire.ml.Action"]){dojo._hasResource["dojox.wire.ml.Action"]=true;dojo.provide("dojox.wire.ml.Action");dojo.provide("dojox.wire.ml.ActionFilter");dojo.require("dijit._Widget");dojo.require("dijit._Container");dojo.require("dojox.wire.Wire");dojo.require("dojox.wire.ml.util");dojo.declare("dojox.wire.ml.Action",[dijit._Widget,dijit._Container],{trigger:"",triggerEvent:"",triggerTopic:"",postCreate:function(){this._connect();},_connect:function(){if(this.triggerEvent){if(this.trigger){var _1=dojox.wire.ml._getValue(this.trigger);if(_1){if(!_1[this.triggerEvent]){_1[this.triggerEvent]=function(){};}this._triggerHandle=dojo.connect(_1,this.triggerEvent,this,"run");}}else{var _2=this.triggerEvent.toLowerCase();if(_2=="onload"){var _3=this;dojo.addOnLoad(function(){_3._run.apply(_3,arguments);});}}}else{if(this.triggerTopic){this._triggerHandle=dojo.subscribe(this.triggerTopic,this,"run");}}},_disconnect:function(){if(this._triggerHandle){if(this.triggerTopic){dojo.unsubscribe(this.triggerTopic,this._triggerHandle);}else{dojo.disconnect(this._triggerHandle);}}},run:function(){var _4=this.getChildren();for(var i in _4){var _6=_4[i];if(_6 instanceof dojox.wire.ml.ActionFilter){if(!_6.filter.apply(_6,arguments)){return;}}}this._run.apply(this,arguments);},_run:function(){var _7=this.getChildren();for(var i in _7){var _9=_7[i];if(_9 instanceof dojox.wire.ml.Action){_9.run.apply(_9,arguments);}}},uninitialize:function(){this._disconnect();return true;}});dojo.declare("dojox.wire.ml.ActionFilter",dijit._Widget,{required:"",requiredValue:"",type:"",message:"",error:"",filter:function(){if(this.required===""){return true;}else{var _a=dojox.wire.ml._getValue(this.required,arguments);if(this.requiredValue===""){if(_a){return true;}}else{var _b=this.requiredValue;if(this.type!==""){var _c=this.type.toLowerCase();if(_c==="boolean"){if(_b.toLowerCase()==="false"){_b=false;}else{_b=true;}}else{if(_c==="number"){_b=parseInt(_b,10);}}}if(_a===_b){return true;}}}if(this.message){if(this.error){dojox.wire.ml._setValue(this.error,this.message);}else{alert(this.message);}}return false;}});}