
if(!dojo._hasResource["dojo.date.stamp"]){dojo._hasResource["dojo.date.stamp"]=true;dojo.provide("dojo.date.stamp");dojo.date.stamp.fromISOString=function(formattedString,defaultTime){if(!dojo.date.stamp._isoRegExp){dojo.date.stamp._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;}
var match=dojo.date.stamp._isoRegExp.exec(formattedString);var result=null;if(match){match.shift();if(match[1]){match[1]--;}
if(match[6]){match[6]*=1000;}
if(defaultTime){defaultTime=new Date(defaultTime);dojo.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(prop){return defaultTime["get"+prop]();}).forEach(function(value,index){if(match[index]===undefined){match[index]=value;}});}
result=new Date(match[0]||1970,match[1]||0,match[2]||1,match[3]||0,match[4]||0,match[5]||0,match[6]||0);var offset=0;var zoneSign=match[7]&&match[7].charAt(0);if(zoneSign!='Z'){offset=((match[8]||0)*60)+(Number(match[9])||0);if(zoneSign!='-'){offset*=-1;}}
if(zoneSign){offset-=result.getTimezoneOffset();}
if(offset){result.setTime(result.getTime()+offset*60000);}}
return result;}
dojo.date.stamp.toISOString=function(dateObject,options){var _=function(n){return(n<10)?"0"+n:n;};options=options||{};var formattedDate=[];var getter=options.zulu?"getUTC":"get";var date="";if(options.selector!="time"){var year=dateObject[getter+"FullYear"]();date=["0000".substr((year+"").length)+year,_(dateObject[getter+"Month"]()+1),_(dateObject[getter+"Date"]())].join('-');}
formattedDate.push(date);if(options.selector!="date"){var time=[_(dateObject[getter+"Hours"]()),_(dateObject[getter+"Minutes"]()),_(dateObject[getter+"Seconds"]())].join(':');var millis=dateObject[getter+"Milliseconds"]();if(options.milliseconds){time+="."+(millis<100?"0":"")+_(millis);}
if(options.zulu){time+="Z";}else if(options.selector!="time"){var timezoneOffset=dateObject.getTimezoneOffset();var absOffset=Math.abs(timezoneOffset);time+=(timezoneOffset>0?"-":"+")+
_(Math.floor(absOffset/60))+":"+_(absOffset%60);}
formattedDate.push(time);}
return formattedDate.join('T');}}
if(!dojo._hasResource["dojo.parser"]){dojo._hasResource["dojo.parser"]=true;dojo.provide("dojo.parser");dojo.parser=new function(){var d=dojo;var dtName=d._scopeName+"Type";var qry="["+dtName+"]";function val2type(value){if(d.isString(value)){return"string";}
if(typeof value=="number"){return"number";}
if(typeof value=="boolean"){return"boolean";}
if(d.isFunction(value)){return"function";}
if(d.isArray(value)){return"array";}
if(value instanceof Date){return"date";}
if(value instanceof d._Url){return"url";}
return"object";}
function str2obj(value,type){switch(type){case"string":return value;case"number":return value.length?Number(value):NaN;case"boolean":return typeof value=="boolean"?value:!(value.toLowerCase()=="false");case"function":if(d.isFunction(value)){value=value.toString();value=d.trim(value.substring(value.indexOf('{')+1,value.length-1));}
try{if(value.search(/[^\w\.]+/i)!=-1){value=d.parser._nameAnonFunc(new Function(value),this);}
return d.getObject(value,false);}catch(e){return new Function();}
case"array":return value?value.split(/\s*,\s*/):[];case"date":switch(value){case"":return new Date("");case"now":return new Date();default:return d.date.stamp.fromISOString(value);}
case"url":return d.baseUrl+value;default:return d.fromJson(value);}}
var instanceClasses={};function getClassInfo(className){if(!instanceClasses[className]){var cls=d.getObject(className);if(!d.isFunction(cls)){throw new Error("Could not load class '"+className+"'. Did you spell the name correctly and use a full path, like 'dijit.form.Button'?");}
var proto=cls.prototype;var params={};for(var name in proto){if(name.charAt(0)=="_"){continue;}
var defVal=proto[name];params[name]=val2type(defVal);}
instanceClasses[className]={cls:cls,params:params};}
return instanceClasses[className];}
this._functionFromScript=function(script){var preamble="";var suffix="";var argsStr=script.getAttribute("args");if(argsStr){d.forEach(argsStr.split(/\s*,\s*/),function(part,idx){preamble+="var "+part+" = arguments["+idx+"]; ";});}
var withStr=script.getAttribute("with");if(withStr&&withStr.length){d.forEach(withStr.split(/\s*,\s*/),function(part){preamble+="with("+part+"){";suffix+="}";});}
return new Function(preamble+script.innerHTML+suffix);}
this.instantiate=function(nodes){var thelist=[];d.forEach(nodes,function(node){if(!node){return;}
var type=node.getAttribute(dtName);if((!type)||(!type.length)){return;}
var clsInfo=getClassInfo(type);var clazz=clsInfo.cls;var ps=clazz._noScript||clazz.prototype._noScript;var params={};var attributes=node.attributes;for(var name in clsInfo.params){var item=attributes.getNamedItem(name);if(!item||(!item.specified&&(!dojo.isIE||name.toLowerCase()!="value"))){continue;}
var value=item.value;switch(name){case"class":value=node.className;break;case"style":value=node.style&&node.style.cssText;}
var _type=clsInfo.params[name];params[name]=str2obj(value,_type);}
if(!ps){var connects=[],calls=[];d.query("> script[type^='dojo/']",node).orphan().forEach(function(script){var event=script.getAttribute("event"),type=script.getAttribute("type"),nf=d.parser._functionFromScript(script);if(event){if(type=="dojo/connect"){connects.push({event:event,func:nf});}else{params[event]=nf;}}else{calls.push(nf);}});}
var markupFactory=clazz["markupFactory"];if(!markupFactory&&clazz["prototype"]){markupFactory=clazz.prototype["markupFactory"];}
var instance=markupFactory?markupFactory(params,node,clazz):new clazz(params,node);thelist.push(instance);var jsname=node.getAttribute("jsId");if(jsname){d.setObject(jsname,instance);}
if(!ps){d.forEach(connects,function(connect){d.connect(instance,connect.event,null,connect.func);});d.forEach(calls,function(func){func.call(instance);});}});d.forEach(thelist,function(instance){if(instance&&instance.startup&&!instance._started&&(!instance.getParent||!instance.getParent())){instance.startup();}});return thelist;};this.parse=function(rootNode){var list=d.query(qry,rootNode);var instances=this.instantiate(list);return instances;};}();(function(){var parseRunner=function(){if(dojo.config["parseOnLoad"]==true){dojo.parser.parse();}};if(dojo.exists("dijit.wai.onload")&&(dijit.wai.onload===dojo._loaders[0])){dojo._loaders.splice(1,0,parseRunner);}else{dojo._loaders.unshift(parseRunner);}})();dojo.parser._anonCtr=0;dojo.parser._anon={};dojo.parser._nameAnonFunc=function(anonFuncPtr,thisObj){var jpn="$joinpoint";var nso=(thisObj||dojo.parser._anon);if(dojo.isIE){var cn=anonFuncPtr["__dojoNameCache"];if(cn&&nso[cn]===anonFuncPtr){return anonFuncPtr["__dojoNameCache"];}}
var ret="__"+dojo.parser._anonCtr++;while(typeof nso[ret]!="undefined"){ret="__"+dojo.parser._anonCtr++;}
nso[ret]=anonFuncPtr;return ret;}}
if(!dojo._hasResource["dojo.data.util.filter"]){dojo._hasResource["dojo.data.util.filter"]=true;dojo.provide("dojo.data.util.filter");dojo.data.util.filter.patternToRegExp=function(pattern,ignoreCase){var rxp="^";var c=null;for(var i=0;i<pattern.length;i++){c=pattern.charAt(i);switch(c){case'\\':rxp+=c;i++;rxp+=pattern.charAt(i);break;case'*':rxp+=".*";break;case'?':rxp+=".";break;case'$':case'^':case'/':case'+':case'.':case'|':case'(':case')':case'{':case'}':case'[':case']':rxp+="\\";default:rxp+=c;}}
rxp+="$";if(ignoreCase){return new RegExp(rxp,"mi");}else{return new RegExp(rxp,"m");}};}
if(!dojo._hasResource["dojo.data.util.sorter"]){dojo._hasResource["dojo.data.util.sorter"]=true;dojo.provide("dojo.data.util.sorter");dojo.data.util.sorter.basicComparator=function(a,b){var ret=0;if(a>b||typeof a==="undefined"||a===null){ret=1;}else if(a<b||typeof b==="undefined"||b===null){ret=-1;}
return ret;};dojo.data.util.sorter.createSortFunction=function(sortSpec,store){var sortFunctions=[];function createSortFunction(attr,dir){return function(itemA,itemB){var a=store.getValue(itemA,attr);var b=store.getValue(itemB,attr);var comparator=null;if(store.comparatorMap){if(typeof attr!=="string"){attr=store.getIdentity(attr);}
comparator=store.comparatorMap[attr]||dojo.data.util.sorter.basicComparator;}
comparator=comparator||dojo.data.util.sorter.basicComparator;return dir*comparator(a,b);};}
var sortAttribute;for(var i=0;i<sortSpec.length;i++){sortAttribute=sortSpec[i];if(sortAttribute.attribute){var direction=(sortAttribute.descending)?-1:1;sortFunctions.push(createSortFunction(sortAttribute.attribute,direction));}}
return function(rowA,rowB){var i=0;while(i<sortFunctions.length){var ret=sortFunctions[i++](rowA,rowB);if(ret!==0){return ret;}}
return 0;};};}
if(!dojo._hasResource["dojo.data.util.simpleFetch"]){dojo._hasResource["dojo.data.util.simpleFetch"]=true;dojo.provide("dojo.data.util.simpleFetch");dojo.data.util.simpleFetch.fetch=function(request){request=request||{};if(!request.store){request.store=this;}
var self=this;var _errorHandler=function(errorData,requestObject){if(requestObject.onError){var scope=requestObject.scope||dojo.global;requestObject.onError.call(scope,errorData,requestObject);}};var _fetchHandler=function(items,requestObject){var oldAbortFunction=requestObject.abort||null;var aborted=false;var startIndex=requestObject.start?requestObject.start:0;var endIndex=(requestObject.count&&(requestObject.count!==Infinity))?(startIndex+requestObject.count):items.length;requestObject.abort=function(){aborted=true;if(oldAbortFunction){oldAbortFunction.call(requestObject);}};var scope=requestObject.scope||dojo.global;if(!requestObject.store){requestObject.store=self;}
if(requestObject.onBegin){requestObject.onBegin.call(scope,items.length,requestObject);}
if(requestObject.sort){items.sort(dojo.data.util.sorter.createSortFunction(requestObject.sort,self));}
if(requestObject.onItem){for(var i=startIndex;(i<items.length)&&(i<endIndex);++i){var item=items[i];if(!aborted){requestObject.onItem.call(scope,item,requestObject);}}}
if(requestObject.onComplete&&!aborted){var subset=null;if(!requestObject.onItem){subset=items.slice(startIndex,endIndex);}
requestObject.onComplete.call(scope,subset,requestObject);}};this._fetchItems(request,_fetchHandler,_errorHandler);return request;};}
if(!dojo._hasResource["dojo.data.ItemFileReadStore"]){dojo._hasResource["dojo.data.ItemFileReadStore"]=true;dojo.provide("dojo.data.ItemFileReadStore");dojo.declare("dojo.data.ItemFileReadStore",null,{constructor:function(keywordParameters){this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._jsonFileUrl=keywordParameters.url;this._jsonData=keywordParameters.data;this._datatypeMap=keywordParameters.typeMap||{};if(!this._datatypeMap['Date']){this._datatypeMap['Date']={type:Date,deserialize:function(value){return dojo.date.stamp.fromISOString(value);}};}
this._features={'dojo.data.api.Read':true,'dojo.data.api.Identity':true};this._itemsByIdentity=null;this._storeRefPropName="_S";this._itemNumPropName="_0";this._rootItemPropName="_RI";this._reverseRefMap="_RRM";this._loadInProgress=false;this._queuedFetches=[];if(keywordParameters.urlPreventCache!==undefined){this.urlPreventCache=keywordParameters.urlPreventCache?true:false;}
if(keywordParameters.clearOnClose){this.clearOnClose=true;}},url:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,_assertIsItem:function(item){if(!this.isItem(item)){throw new Error("dojo.data.ItemFileReadStore: Invalid item argument.");}},_assertIsAttribute:function(attribute){if(typeof attribute!=="string"){throw new Error("dojo.data.ItemFileReadStore: Invalid attribute argument.");}},getValue:function(item,attribute,defaultValue){var values=this.getValues(item,attribute);return(values.length>0)?values[0]:defaultValue;},getValues:function(item,attribute){this._assertIsItem(item);this._assertIsAttribute(attribute);return item[attribute]||[];},getAttributes:function(item){this._assertIsItem(item);var attributes=[];for(var key in item){if((key!==this._storeRefPropName)&&(key!==this._itemNumPropName)&&(key!==this._rootItemPropName)&&(key!==this._reverseRefMap)){attributes.push(key);}}
return attributes;},hasAttribute:function(item,attribute){return this.getValues(item,attribute).length>0;},containsValue:function(item,attribute,value){var regexp=undefined;if(typeof value==="string"){regexp=dojo.data.util.filter.patternToRegExp(value,false);}
return this._containsValue(item,attribute,value,regexp);},_containsValue:function(item,attribute,value,regexp){return dojo.some(this.getValues(item,attribute),function(possibleValue){if(possibleValue!==null&&!dojo.isObject(possibleValue)&&regexp){if(possibleValue.toString().match(regexp)){return true;}}else if(value===possibleValue){return true;}});},isItem:function(something){if(something&&something[this._storeRefPropName]===this){if(this._arrayOfAllItems[something[this._itemNumPropName]]===something){return true;}}
return false;},isItemLoaded:function(something){return this.isItem(something);},loadItem:function(keywordArgs){this._assertIsItem(keywordArgs.item);},getFeatures:function(){return this._features;},getLabel:function(item){if(this._labelAttr&&this.isItem(item)){return this.getValue(item,this._labelAttr);}
return undefined;},getLabelAttributes:function(item){if(this._labelAttr){return[this._labelAttr];}
return null;},_fetchItems:function(keywordArgs,findCallback,errorCallback){var self=this;var filter=function(requestArgs,arrayOfItems){var items=[];if(requestArgs.query){var ignoreCase=requestArgs.queryOptions?requestArgs.queryOptions.ignoreCase:false;var regexpList={};for(var key in requestArgs.query){var value=requestArgs.query[key];if(typeof value==="string"){regexpList[key]=dojo.data.util.filter.patternToRegExp(value,ignoreCase);}}
for(var i=0;i<arrayOfItems.length;++i){var match=true;var candidateItem=arrayOfItems[i];if(candidateItem===null){match=false;}else{for(var key in requestArgs.query){var value=requestArgs.query[key];if(!self._containsValue(candidateItem,key,value,regexpList[key])){match=false;}}}
if(match){items.push(candidateItem);}}
findCallback(items,requestArgs);}else{for(var i=0;i<arrayOfItems.length;++i){var item=arrayOfItems[i];if(item!==null){items.push(item);}}
findCallback(items,requestArgs);}};if(this._loadFinished){filter(keywordArgs,this._getItemsArray(keywordArgs.queryOptions));}else{if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:keywordArgs,filter:filter});}else{this._loadInProgress=true;var getArgs={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache};var getHandler=dojo.xhrGet(getArgs);getHandler.addCallback(function(data){try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;filter(keywordArgs,self._getItemsArray(keywordArgs.queryOptions));self._handleQueuedFetches();}catch(e){self._loadFinished=true;self._loadInProgress=false;errorCallback(e,keywordArgs);}});getHandler.addErrback(function(error){self._loadInProgress=false;errorCallback(error,keywordArgs);});}}else if(this._jsonData){try{this._loadFinished=true;this._getItemsFromLoadedData(this._jsonData);this._jsonData=null;filter(keywordArgs,this._getItemsArray(keywordArgs.queryOptions));}catch(e){errorCallback(e,keywordArgs);}}else{errorCallback(new Error("dojo.data.ItemFileReadStore: No JSON source data was provided as either URL or a nested Javascript object."),keywordArgs);}}},_handleQueuedFetches:function(){if(this._queuedFetches.length>0){for(var i=0;i<this._queuedFetches.length;i++){var fData=this._queuedFetches[i];var delayedQuery=fData.args;var delayedFilter=fData.filter;if(delayedFilter){delayedFilter(delayedQuery,this._getItemsArray(delayedQuery.queryOptions));}else{this.fetchItemByIdentity(delayedQuery);}}
this._queuedFetches=[];}},_getItemsArray:function(queryOptions){if(queryOptions&&queryOptions.deep){return this._arrayOfAllItems;}
return this._arrayOfTopLevelItems;},close:function(request){if(this.clearOnClose&&(this._jsonFileUrl!=="")){this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._itemsByIdentity=null;this._loadInProgress=false;this._queuedFetches=[];}},_getItemsFromLoadedData:function(dataObject){var addingArrays=false;function valueIsAnItem(aValue){var isItem=((aValue!=null)&&(typeof aValue=="object")&&(!dojo.isArray(aValue)||addingArrays)&&(!dojo.isFunction(aValue))&&(aValue.constructor==Object||dojo.isArray(aValue))&&(typeof aValue._reference=="undefined")&&(typeof aValue._type=="undefined")&&(typeof aValue._value=="undefined"));return isItem;}
var self=this;function addItemAndSubItemsToArrayOfAllItems(anItem){self._arrayOfAllItems.push(anItem);for(var attribute in anItem){var valueForAttribute=anItem[attribute];if(valueForAttribute){if(dojo.isArray(valueForAttribute)){var valueArray=valueForAttribute;for(var k=0;k<valueArray.length;++k){var singleValue=valueArray[k];if(valueIsAnItem(singleValue)){addItemAndSubItemsToArrayOfAllItems(singleValue);}}}else{if(valueIsAnItem(valueForAttribute)){addItemAndSubItemsToArrayOfAllItems(valueForAttribute);}}}}}
this._labelAttr=dataObject.label;var i;var item;this._arrayOfAllItems=[];this._arrayOfTopLevelItems=dataObject.items;for(i=0;i<this._arrayOfTopLevelItems.length;++i){item=this._arrayOfTopLevelItems[i];if(dojo.isArray(item)){addingArrays=true;}
addItemAndSubItemsToArrayOfAllItems(item);item[this._rootItemPropName]=true;}
var allAttributeNames={};var key;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){if(key!==this._rootItemPropName)
{var value=item[key];if(value!==null){if(!dojo.isArray(value)){item[key]=[value];}}else{item[key]=[null];}}
allAttributeNames[key]=key;}}
while(allAttributeNames[this._storeRefPropName]){this._storeRefPropName+="_";}
while(allAttributeNames[this._itemNumPropName]){this._itemNumPropName+="_";}
while(allAttributeNames[this._reverseRefMap]){this._reverseRefMap+="_";}
var arrayOfValues;var identifier=dataObject.identifier;if(identifier){this._itemsByIdentity={};this._features['dojo.data.api.Identity']=identifier;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];arrayOfValues=item[identifier];var identity=arrayOfValues[0];if(!this._itemsByIdentity[identity]){this._itemsByIdentity[identity]=item;}else{if(this._jsonFileUrl){throw new Error("dojo.data.ItemFileReadStore:  The json data as specified by: ["+this._jsonFileUrl+"] is malformed.  Items within the list have identifier: ["+identifier+"].  Value collided: ["+identity+"]");}else if(this._jsonData){throw new Error("dojo.data.ItemFileReadStore:  The json data provided by the creation arguments is malformed.  Items within the list have identifier: ["+identifier+"].  Value collided: ["+identity+"]");}}}}else{this._features['dojo.data.api.Identity']=Number;}
for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];item[this._storeRefPropName]=this;item[this._itemNumPropName]=i;}
for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){arrayOfValues=item[key];for(var j=0;j<arrayOfValues.length;++j){value=arrayOfValues[j];if(value!==null&&typeof value=="object"){if(value._type&&value._value){var type=value._type;var mappingObj=this._datatypeMap[type];if(!mappingObj){throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '"+type+"'");}else if(dojo.isFunction(mappingObj)){arrayOfValues[j]=new mappingObj(value._value);}else if(dojo.isFunction(mappingObj.deserialize)){arrayOfValues[j]=mappingObj.deserialize(value._value);}else{throw new Error("dojo.data.ItemFileReadStore: Value provided in typeMap was neither a constructor, nor a an object with a deserialize function");}}
if(value._reference){var referenceDescription=value._reference;if(!dojo.isObject(referenceDescription)){arrayOfValues[j]=this._itemsByIdentity[referenceDescription];}else{for(var k=0;k<this._arrayOfAllItems.length;++k){var candidateItem=this._arrayOfAllItems[k];var found=true;for(var refKey in referenceDescription){if(candidateItem[refKey]!=referenceDescription[refKey]){found=false;}}
if(found){arrayOfValues[j]=candidateItem;}}}
if(this.referenceIntegrity){var refItem=arrayOfValues[j];if(this.isItem(refItem)){this._addReferenceToMap(refItem,item,key);}}}else if(this.isItem(value)){if(this.referenceIntegrity){this._addReferenceToMap(value,item,key);}}}}}}},_addReferenceToMap:function(refItem,parentItem,attribute){},getIdentity:function(item){var identifier=this._features['dojo.data.api.Identity'];if(identifier===Number){return item[this._itemNumPropName];}else{var arrayOfValues=item[identifier];if(arrayOfValues){return arrayOfValues[0];}}
return null;},fetchItemByIdentity:function(keywordArgs){if(!this._loadFinished){var self=this;if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:keywordArgs});}else{this._loadInProgress=true;var getArgs={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache};var getHandler=dojo.xhrGet(getArgs);getHandler.addCallback(function(data){var scope=keywordArgs.scope?keywordArgs.scope:dojo.global;try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;var item=self._getItemByIdentity(keywordArgs.identity);if(keywordArgs.onItem){keywordArgs.onItem.call(scope,item);}
self._handleQueuedFetches();}catch(error){self._loadInProgress=false;if(keywordArgs.onError){keywordArgs.onError.call(scope,error);}}});getHandler.addErrback(function(error){self._loadInProgress=false;if(keywordArgs.onError){var scope=keywordArgs.scope?keywordArgs.scope:dojo.global;keywordArgs.onError.call(scope,error);}});}}else if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;var item=self._getItemByIdentity(keywordArgs.identity);if(keywordArgs.onItem){var scope=keywordArgs.scope?keywordArgs.scope:dojo.global;keywordArgs.onItem.call(scope,item);}}}else{var item=this._getItemByIdentity(keywordArgs.identity);if(keywordArgs.onItem){var scope=keywordArgs.scope?keywordArgs.scope:dojo.global;keywordArgs.onItem.call(scope,item);}}},_getItemByIdentity:function(identity){var item=null;if(this._itemsByIdentity){item=this._itemsByIdentity[identity];}else{item=this._arrayOfAllItems[identity];}
if(item===undefined){item=null;}
return item;},getIdentityAttributes:function(item){var identifier=this._features['dojo.data.api.Identity'];if(identifier===Number){return null;}else{return[identifier];}},_forceLoad:function(){var self=this;if(this._jsonFileUrl){var getArgs={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,sync:true};var getHandler=dojo.xhrGet(getArgs);getHandler.addCallback(function(data){try{if(self._loadInProgress!==true&&!self._loadFinished){self._getItemsFromLoadedData(data);self._loadFinished=true;}else if(self._loadInProgress){throw new Error("dojo.data.ItemFileReadStore:  Unable to perform a synchronous load, an async load is in progress.");}}catch(e){throw e;}});getHandler.addErrback(function(error){throw error;});}else if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;}}});dojo.extend(dojo.data.ItemFileReadStore,dojo.data.util.simpleFetch);}
if(!dojo._hasResource["dojo.data.ItemFileWriteStore"]){dojo._hasResource["dojo.data.ItemFileWriteStore"]=true;dojo.provide("dojo.data.ItemFileWriteStore");dojo.declare("dojo.data.ItemFileWriteStore",dojo.data.ItemFileReadStore,{constructor:function(keywordParameters){this._features['dojo.data.api.Write']=true;this._features['dojo.data.api.Notification']=true;this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};if(!this._datatypeMap['Date'].serialize){this._datatypeMap['Date'].serialize=function(obj){return dojo.date.stamp.toISOString(obj,{zulu:true});};}
if(keywordParameters&&(keywordParameters.referenceIntegrity===false)){this.referenceIntegrity=false;}
this._saveInProgress=false;},referenceIntegrity:true,_assert:function(condition){if(!condition){throw new Error("assertion failed in ItemFileWriteStore");}},_getIdentifierAttribute:function(){var identifierAttribute=this.getFeatures()['dojo.data.api.Identity'];return identifierAttribute;},newItem:function(keywordArgs,parentInfo){this._assert(!this._saveInProgress);if(!this._loadFinished){this._forceLoad();}
if(typeof keywordArgs!="object"&&typeof keywordArgs!="undefined"){throw new Error("newItem() was passed something other than an object");}
var newIdentity=null;var identifierAttribute=this._getIdentifierAttribute();if(identifierAttribute===Number){newIdentity=this._arrayOfAllItems.length;}else{newIdentity=keywordArgs[identifierAttribute];if(typeof newIdentity==="undefined"){throw new Error("newItem() was not passed an identity for the new item");}
if(dojo.isArray(newIdentity)){throw new Error("newItem() was not passed an single-valued identity");}}
if(this._itemsByIdentity){this._assert(typeof this._itemsByIdentity[newIdentity]==="undefined");}
this._assert(typeof this._pending._newItems[newIdentity]==="undefined");this._assert(typeof this._pending._deletedItems[newIdentity]==="undefined");var newItem={};newItem[this._storeRefPropName]=this;newItem[this._itemNumPropName]=this._arrayOfAllItems.length;if(this._itemsByIdentity){this._itemsByIdentity[newIdentity]=newItem;newItem[identifierAttribute]=[newIdentity];}
this._arrayOfAllItems.push(newItem);var pInfo=null;if(parentInfo&&parentInfo.parent&&parentInfo.attribute){pInfo={item:parentInfo.parent,attribute:parentInfo.attribute,oldValue:undefined};var values=this.getValues(parentInfo.parent,parentInfo.attribute);if(values&&values.length>0){var tempValues=values.slice(0,values.length);if(values.length===1){pInfo.oldValue=values[0];}else{pInfo.oldValue=values.slice(0,values.length);}
tempValues.push(newItem);this._setValueOrValues(parentInfo.parent,parentInfo.attribute,tempValues,false);pInfo.newValue=this.getValues(parentInfo.parent,parentInfo.attribute);}else{this._setValueOrValues(parentInfo.parent,parentInfo.attribute,newItem,false);pInfo.newValue=newItem;}}else{newItem[this._rootItemPropName]=true;this._arrayOfTopLevelItems.push(newItem);}
this._pending._newItems[newIdentity]=newItem;for(var key in keywordArgs){if(key===this._storeRefPropName||key===this._itemNumPropName){throw new Error("encountered bug in ItemFileWriteStore.newItem");}
var value=keywordArgs[key];if(!dojo.isArray(value)){value=[value];}
newItem[key]=value;if(this.referenceIntegrity){for(var i=0;i<value.length;i++){var val=value[i];if(this.isItem(val)){this._addReferenceToMap(val,newItem,key);}}}}
this.onNew(newItem,pInfo);return newItem;},_removeArrayElement:function(array,element){var index=dojo.indexOf(array,element);if(index!=-1){array.splice(index,1);return true;}
return false;},deleteItem:function(item){this._assert(!this._saveInProgress);this._assertIsItem(item);var indexInArrayOfAllItems=item[this._itemNumPropName];var identity=this.getIdentity(item);if(this.referenceIntegrity){var attributes=this.getAttributes(item);if(item[this._reverseRefMap]){item["backup_"+this._reverseRefMap]=dojo.clone(item[this._reverseRefMap]);}
dojo.forEach(attributes,function(attribute){dojo.forEach(this.getValues(item,attribute),function(value){if(this.isItem(value)){if(!item["backupRefs_"+this._reverseRefMap]){item["backupRefs_"+this._reverseRefMap]=[];}
item["backupRefs_"+this._reverseRefMap].push({id:this.getIdentity(value),attr:attribute});this._removeReferenceFromMap(value,item,attribute);}},this);},this);var references=item[this._reverseRefMap];if(references){for(var itemId in references){var containingItem=null;if(this._itemsByIdentity){containingItem=this._itemsByIdentity[itemId];}else{containingItem=this._arrayOfAllItems[itemId];}
if(containingItem){for(var attribute in references[itemId]){var oldValues=this.getValues(containingItem,attribute)||[];var newValues=dojo.filter(oldValues,function(possibleItem){return!(this.isItem(possibleItem)&&this.getIdentity(possibleItem)==identity);},this);this._removeReferenceFromMap(item,containingItem,attribute);if(newValues.length<oldValues.length){this._setValueOrValues(containingItem,attribute,newValues,true);}}}}}}
this._arrayOfAllItems[indexInArrayOfAllItems]=null;item[this._storeRefPropName]=null;if(this._itemsByIdentity){delete this._itemsByIdentity[identity];}
this._pending._deletedItems[identity]=item;if(item[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,item);}
this.onDelete(item);return true;},setValue:function(item,attribute,value){return this._setValueOrValues(item,attribute,value,true);},setValues:function(item,attribute,values){return this._setValueOrValues(item,attribute,values,true);},unsetAttribute:function(item,attribute){return this._setValueOrValues(item,attribute,[],true);},_setValueOrValues:function(item,attribute,newValueOrValues,callOnSet){this._assert(!this._saveInProgress);this._assertIsItem(item);this._assert(dojo.isString(attribute));this._assert(typeof newValueOrValues!=="undefined");var identifierAttribute=this._getIdentifierAttribute();if(attribute==identifierAttribute){throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier.");}
var oldValueOrValues=this._getValueOrValues(item,attribute);var identity=this.getIdentity(item);if(!this._pending._modifiedItems[identity]){var copyOfItemState={};for(var key in item){if((key===this._storeRefPropName)||(key===this._itemNumPropName)||(key===this._rootItemPropName)){copyOfItemState[key]=item[key];}else if(key===this._reverseRefMap){copyOfItemState[key]=dojo.clone(item[key]);}else{copyOfItemState[key]=item[key].slice(0,item[key].length);}}
this._pending._modifiedItems[identity]=copyOfItemState;}
var success=false;if(dojo.isArray(newValueOrValues)&&newValueOrValues.length===0){success=delete item[attribute];newValueOrValues=undefined;if(this.referenceIntegrity&&oldValueOrValues){var oldValues=oldValueOrValues;if(!dojo.isArray(oldValues)){oldValues=[oldValues];}
for(var i=0;i<oldValues.length;i++){var value=oldValues[i];if(this.isItem(value)){this._removeReferenceFromMap(value,item,attribute);}}}}else{var newValueArray;if(dojo.isArray(newValueOrValues)){var newValues=newValueOrValues;newValueArray=newValueOrValues.slice(0,newValueOrValues.length);}else{newValueArray=[newValueOrValues];}
if(this.referenceIntegrity){if(oldValueOrValues){var oldValues=oldValueOrValues;if(!dojo.isArray(oldValues)){oldValues=[oldValues];}
var map={};dojo.forEach(oldValues,function(possibleItem){if(this.isItem(possibleItem)){var id=this.getIdentity(possibleItem);map[id.toString()]=true;}},this);dojo.forEach(newValueArray,function(possibleItem){if(this.isItem(possibleItem)){var id=this.getIdentity(possibleItem);if(map[id.toString()]){delete map[id.toString()];}else{this._addReferenceToMap(possibleItem,item,attribute);}}},this);for(var rId in map){var removedItem;if(this._itemsByIdentity){removedItem=this._itemsByIdentity[rId];}else{removedItem=this._arrayOfAllItems[rId];}
this._removeReferenceFromMap(removedItem,item,attribute);}}else{for(var i=0;i<newValueArray.length;i++){var value=newValueArray[i];if(this.isItem(value)){this._addReferenceToMap(value,item,attribute);}}}}
item[attribute]=newValueArray;success=true;}
if(callOnSet){this.onSet(item,attribute,oldValueOrValues,newValueOrValues);}
return success;},_addReferenceToMap:function(refItem,parentItem,attribute){var parentId=this.getIdentity(parentItem);var references=refItem[this._reverseRefMap];if(!references){references=refItem[this._reverseRefMap]={};}
var itemRef=references[parentId];if(!itemRef){itemRef=references[parentId]={};}
itemRef[attribute]=true;},_removeReferenceFromMap:function(refItem,parentItem,attribute){var identity=this.getIdentity(parentItem);var references=refItem[this._reverseRefMap];var itemId;if(references){for(itemId in references){if(itemId==identity){delete references[itemId][attribute];if(this._isEmpty(references[itemId])){delete references[itemId];}}}
if(this._isEmpty(references)){delete refItem[this._reverseRefMap];}}},_dumpReferenceMap:function(){var i;for(i=0;i<this._arrayOfAllItems.length;i++){var item=this._arrayOfAllItems[i];if(item&&item[this._reverseRefMap]){}}},_getValueOrValues:function(item,attribute){var valueOrValues=undefined;if(this.hasAttribute(item,attribute)){var valueArray=this.getValues(item,attribute);if(valueArray.length==1){valueOrValues=valueArray[0];}else{valueOrValues=valueArray;}}
return valueOrValues;},_flatten:function(value){if(this.isItem(value)){var item=value;var identity=this.getIdentity(item);var referenceObject={_reference:identity};return referenceObject;}else{if(typeof value==="object"){for(var type in this._datatypeMap){var typeMap=this._datatypeMap[type];if(dojo.isObject(typeMap)&&!dojo.isFunction(typeMap)){if(value instanceof typeMap.type){if(!typeMap.serialize){throw new Error("ItemFileWriteStore:  No serializer defined for type mapping: ["+type+"]");}
return{_type:type,_value:typeMap.serialize(value)};}}else if(value instanceof typeMap){return{_type:type,_value:value.toString()};}}}
return value;}},_getNewFileContentString:function(){var serializableStructure={};var identifierAttribute=this._getIdentifierAttribute();if(identifierAttribute!==Number){serializableStructure.identifier=identifierAttribute;}
if(this._labelAttr){serializableStructure.label=this._labelAttr;}
serializableStructure.items=[];for(var i=0;i<this._arrayOfAllItems.length;++i){var item=this._arrayOfAllItems[i];if(item!==null){var serializableItem={};for(var key in item){if(key!==this._storeRefPropName&&key!==this._itemNumPropName){var attribute=key;var valueArray=this.getValues(item,attribute);if(valueArray.length==1){serializableItem[attribute]=this._flatten(valueArray[0]);}else{var serializableArray=[];for(var j=0;j<valueArray.length;++j){serializableArray.push(this._flatten(valueArray[j]));serializableItem[attribute]=serializableArray;}}}}
serializableStructure.items.push(serializableItem);}}
var prettyPrint=true;return dojo.toJson(serializableStructure,prettyPrint);},_isEmpty:function(something){var empty=true;if(dojo.isObject(something)){var i;for(i in something){empty=false;break;}}else if(dojo.isArray(something)){if(something.length>0){empty=false;}}
return empty;},save:function(keywordArgs){this._assert(!this._saveInProgress);this._saveInProgress=true;var self=this;var saveCompleteCallback=function(){self._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};self._saveInProgress=false;if(keywordArgs&&keywordArgs.onComplete){var scope=keywordArgs.scope||dojo.global;keywordArgs.onComplete.call(scope);}};var saveFailedCallback=function(err){self._saveInProgress=false;if(keywordArgs&&keywordArgs.onError){var scope=keywordArgs.scope||dojo.global;keywordArgs.onError.call(scope,err);}};if(this._saveEverything){var newFileContentString=this._getNewFileContentString();this._saveEverything(saveCompleteCallback,saveFailedCallback,newFileContentString);}
if(this._saveCustom){this._saveCustom(saveCompleteCallback,saveFailedCallback);}
if(!this._saveEverything&&!this._saveCustom){saveCompleteCallback();}},revert:function(){this._assert(!this._saveInProgress);var identity;for(identity in this._pending._modifiedItems){var originalItem=this._pending._modifiedItems[identity];var modifiedItem=null;if(this._itemsByIdentity){modifiedItem=this._itemsByIdentity[identity];}else{modifiedItem=this._arrayOfAllItems[identity];}
originalItem[this._storeRefPropName]=this;modifiedItem[this._storeRefPropName]=null;var arrayIndex=modifiedItem[this._itemNumPropName];this._arrayOfAllItems[arrayIndex]=originalItem;if(modifiedItem[this._rootItemPropName]){var i;for(i=0;i<this._arrayOfTopLevelItems.length;i++){var possibleMatch=this._arrayOfTopLevelItems[i];if(this.getIdentity(possibleMatch)==identity){this._arrayOfTopLevelItems[i]=originalItem;break;}}}
if(this._itemsByIdentity){this._itemsByIdentity[identity]=originalItem;}}
var deletedItem;for(identity in this._pending._deletedItems){deletedItem=this._pending._deletedItems[identity];deletedItem[this._storeRefPropName]=this;var index=deletedItem[this._itemNumPropName];if(deletedItem["backup_"+this._reverseRefMap]){deletedItem[this._reverseRefMap]=deletedItem["backup_"+this._reverseRefMap];delete deletedItem["backup_"+this._reverseRefMap];}
this._arrayOfAllItems[index]=deletedItem;if(this._itemsByIdentity){this._itemsByIdentity[identity]=deletedItem;}
if(deletedItem[this._rootItemPropName]){this._arrayOfTopLevelItems.push(deletedItem);}}
for(identity in this._pending._deletedItems){deletedItem=this._pending._deletedItems[identity];if(deletedItem["backupRefs_"+this._reverseRefMap]){dojo.forEach(deletedItem["backupRefs_"+this._reverseRefMap],function(reference){var refItem;if(this._itemsByIdentity){refItem=this._itemsByIdentity[reference.id];}else{refItem=this._arrayOfAllItems[reference.id];}
this._addReferenceToMap(refItem,deletedItem,reference.attr);},this);delete deletedItem["backupRefs_"+this._reverseRefMap];}}
for(identity in this._pending._newItems){var newItem=this._pending._newItems[identity];newItem[this._storeRefPropName]=null;this._arrayOfAllItems[newItem[this._itemNumPropName]]=null;if(newItem[this._rootItemPropName]){this._removeArrayElement(this._arrayOfTopLevelItems,newItem);}
if(this._itemsByIdentity){delete this._itemsByIdentity[identity];}}
this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}};return true;},isDirty:function(item){if(item){var identity=this.getIdentity(item);return new Boolean(this._pending._newItems[identity]||this._pending._modifiedItems[identity]||this._pending._deletedItems[identity]).valueOf();}else{if(!this._isEmpty(this._pending._newItems)||!this._isEmpty(this._pending._modifiedItems)||!this._isEmpty(this._pending._deletedItems)){return true;}
return false;}},onSet:function(item,attribute,oldValue,newValue){},onNew:function(newItem,parentInfo){},onDelete:function(deletedItem){},close:function(request){if(this.clearOnClose){if(!this.isDirty()){this.inherited(arguments);}else if(this._jsonFileUrl!==""){throw new Error("dojo.data.ItemFileWriteStore: There are unsaved changes present in the store.  Please save or revert the changes before invoking close.");}}}});}
if(!dojo._hasResource["dijit._base.focus"]){dojo._hasResource["dijit._base.focus"]=true;dojo.provide("dijit._base.focus");dojo.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){var _document=dojo.doc;if(_document.selection){var s=_document.selection;if(s.type=='Text'){return!s.createRange().htmlText.length;}else{return!s.createRange().length;}}else{var _window=dojo.global;var selection=_window.getSelection();if(dojo.isString(selection)){return!selection;}else{return selection.isCollapsed||!selection.toString();}}},getBookmark:function(){var bookmark,selection=dojo.doc.selection;if(selection){var range=selection.createRange();if(selection.type.toUpperCase()=='CONTROL'){if(range.length){bookmark=[];var i=0,len=range.length;while(i<len){bookmark.push(range.item(i++));}}else{bookmark=null;}}else{bookmark=range.getBookmark();}}else{if(window.getSelection){selection=dojo.global.getSelection();if(selection){range=selection.getRangeAt(0);bookmark=range.cloneRange();}}else{console.warn("No idea how to store the current selection for this browser!");}}
return bookmark;},moveToBookmark:function(bookmark){var _document=dojo.doc;if(_document.selection){var range;if(dojo.isArray(bookmark)){range=_document.body.createControlRange();dojo.forEach(bookmark,function(n){range.addElement(n);});}else{range=_document.selection.createRange();range.moveToBookmark(bookmark);}
range.select();}else{var selection=dojo.global.getSelection&&dojo.global.getSelection();if(selection&&selection.removeAllRanges){selection.removeAllRanges();selection.addRange(bookmark);}else{console.warn("No idea how to restore selection for this browser!");}}},getFocus:function(menu,openedForWindow){return{node:menu&&dojo.isDescendant(dijit._curFocus,menu.domNode)?dijit._prevFocus:dijit._curFocus,bookmark:!dojo.withGlobal(openedForWindow||dojo.global,dijit.isCollapsed)?dojo.withGlobal(openedForWindow||dojo.global,dijit.getBookmark):null,openedForWindow:openedForWindow};},focus:function(handle){if(!handle){return;}
var node="node"in handle?handle.node:handle,bookmark=handle.bookmark,openedForWindow=handle.openedForWindow;if(node){var focusNode=(node.tagName.toLowerCase()=="iframe")?node.contentWindow:node;if(focusNode&&focusNode.focus){try{focusNode.focus();}catch(e){}}
dijit._onFocusNode(node);}
if(bookmark&&dojo.withGlobal(openedForWindow||dojo.global,dijit.isCollapsed)){if(openedForWindow){openedForWindow.focus();}
try{dojo.withGlobal(openedForWindow||dojo.global,dijit.moveToBookmark,null,[bookmark]);}catch(e){}}},_activeStack:[],registerWin:function(targetWindow){if(!targetWindow){targetWindow=window;}
dojo.connect(targetWindow.document,"onmousedown",function(evt){dijit._justMouseDowned=true;setTimeout(function(){dijit._justMouseDowned=false;},0);dijit._onTouchNode(evt.target||evt.srcElement);});var doc=targetWindow.document;if(doc){if(dojo.isIE){doc.attachEvent('onactivate',function(evt){if(evt.srcElement.tagName.toLowerCase()!="#document"){dijit._onFocusNode(evt.srcElement);}});doc.attachEvent('ondeactivate',function(evt){dijit._onBlurNode(evt.srcElement);});}else{doc.addEventListener('focus',function(evt){dijit._onFocusNode(evt.target);},true);doc.addEventListener('blur',function(evt){dijit._onBlurNode(evt.target);},true);}}
doc=null;},_onBlurNode:function(node){dijit._prevFocus=dijit._curFocus;dijit._curFocus=null;if(dijit._justMouseDowned){return;}
if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);}
dijit._clearActiveWidgetsTimer=setTimeout(function(){delete dijit._clearActiveWidgetsTimer;dijit._setStack([]);dijit._prevFocus=null;},100);},_onTouchNode:function(node){if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);delete dijit._clearActiveWidgetsTimer;}
var newStack=[];try{while(node){if(node.dijitPopupParent){node=dijit.byId(node.dijitPopupParent).domNode;}else if(node.tagName&&node.tagName.toLowerCase()=="body"){if(node===dojo.body()){break;}
node=dijit.getDocumentWindow(node.ownerDocument).frameElement;}else{var id=node.getAttribute&&node.getAttribute("widgetId");if(id){newStack.unshift(id);}
node=node.parentNode;}}}catch(e){}
dijit._setStack(newStack);},_onFocusNode:function(node){if(!node){return;}
if(node.nodeType==9){return;}
if(node.nodeType==9){var iframe=dijit.getDocumentWindow(node).frameElement;if(!iframe){return;}
node=iframe;}
dijit._onTouchNode(node);if(node==dijit._curFocus){return;}
if(dijit._curFocus){dijit._prevFocus=dijit._curFocus;}
dijit._curFocus=node;dojo.publish("focusNode",[node]);},_setStack:function(newStack){var oldStack=dijit._activeStack;dijit._activeStack=newStack;for(var nCommon=0;nCommon<Math.min(oldStack.length,newStack.length);nCommon++){if(oldStack[nCommon]!=newStack[nCommon]){break;}}
for(var i=oldStack.length-1;i>=nCommon;i--){var widget=dijit.byId(oldStack[i]);if(widget){widget._focused=false;widget._hasBeenBlurred=true;if(widget._onBlur){widget._onBlur();}
if(widget._setStateClass){widget._setStateClass();}
dojo.publish("widgetBlur",[widget]);}}
for(i=nCommon;i<newStack.length;i++){widget=dijit.byId(newStack[i]);if(widget){widget._focused=true;if(widget._onFocus){widget._onFocus();}
if(widget._setStateClass){widget._setStateClass();}
dojo.publish("widgetFocus",[widget]);}}}});dojo.addOnLoad(dijit.registerWin);}
if(!dojo._hasResource["dijit._base.manager"]){dojo._hasResource["dijit._base.manager"]=true;dojo.provide("dijit._base.manager");dojo.declare("dijit.WidgetSet",null,{constructor:function(){this._hash={};},add:function(widget){if(this._hash[widget.id]){throw new Error("Tried to register widget with id=="+widget.id+" but that id is already registered");}
this._hash[widget.id]=widget;},remove:function(id){delete this._hash[id];},forEach:function(func){for(var id in this._hash){func(this._hash[id]);}},filter:function(filter){var res=new dijit.WidgetSet();this.forEach(function(widget){if(filter(widget)){res.add(widget);}});return res;},byId:function(id){return this._hash[id];},byClass:function(cls){return this.filter(function(widget){return widget.declaredClass==cls;});}});dijit.registry=new dijit.WidgetSet();dijit._widgetTypeCtr={};dijit.getUniqueId=function(widgetType){var id;do{id=widgetType+"_"+
(widgetType in dijit._widgetTypeCtr?++dijit._widgetTypeCtr[widgetType]:dijit._widgetTypeCtr[widgetType]=0);}while(dijit.byId(id));return id;};if(dojo.isIE){dojo.addOnWindowUnload(function(){dijit.registry.forEach(function(widget){widget.destroy();});});}
dijit.byId=function(id){return(dojo.isString(id))?dijit.registry.byId(id):id;};dijit.byNode=function(node){return dijit.registry.byId(node.getAttribute("widgetId"));};dijit.getEnclosingWidget=function(node){while(node){if(node.getAttribute&&node.getAttribute("widgetId")){return dijit.registry.byId(node.getAttribute("widgetId"));}
node=node.parentNode;}
return null;};dijit._tabElements={area:true,button:true,input:true,object:true,select:true,textarea:true};dijit._isElementShown=function(elem){var style=dojo.style(elem);return(style.visibility!="hidden")&&(style.visibility!="collapsed")&&(style.display!="none")&&(dojo.attr(elem,"type")!="hidden");}
dijit.isTabNavigable=function(elem){if(dojo.hasAttr(elem,"disabled")){return false;}
var hasTabindex=dojo.hasAttr(elem,"tabindex");var tabindex=dojo.attr(elem,"tabindex");if(hasTabindex&&tabindex>=0){return true;}
var name=elem.nodeName.toLowerCase();if(((name=="a"&&dojo.hasAttr(elem,"href"))||dijit._tabElements[name])&&(!hasTabindex||tabindex>=0)){return true;}
return false;};dijit._getTabNavigable=function(root){var first,last,lowest,lowestTabindex,highest,highestTabindex;var walkTree=function(parent){dojo.query("> *",parent).forEach(function(child){var isShown=dijit._isElementShown(child);if(isShown&&dijit.isTabNavigable(child)){var tabindex=dojo.attr(child,"tabindex");if(!dojo.hasAttr(child,"tabindex")||tabindex==0){if(!first){first=child;}
last=child;}else if(tabindex>0){if(!lowest||tabindex<lowestTabindex){lowestTabindex=tabindex;lowest=child;}
if(!highest||tabindex>=highestTabindex){highestTabindex=tabindex;highest=child;}}}
if(isShown&&child.nodeName.toUpperCase()!='SELECT'){walkTree(child)}});};if(dijit._isElementShown(root)){walkTree(root)}
return{first:first,last:last,lowest:lowest,highest:highest};}
dijit.getFirstInTabbingOrder=function(root){var elems=dijit._getTabNavigable(dojo.byId(root));return elems.lowest?elems.lowest:elems.first;};dijit.getLastInTabbingOrder=function(root){var elems=dijit._getTabNavigable(dojo.byId(root));return elems.last?elems.last:elems.highest;};dijit.defaultDuration=dojo.config["defaultDuration"]||200;}
if(!dojo._hasResource["dojo.AdapterRegistry"]){dojo._hasResource["dojo.AdapterRegistry"]=true;dojo.provide("dojo.AdapterRegistry");dojo.AdapterRegistry=function(returnWrappers){this.pairs=[];this.returnWrappers=returnWrappers||false;}
dojo.extend(dojo.AdapterRegistry,{register:function(name,check,wrap,directReturn,override){this.pairs[((override)?"unshift":"push")]([name,check,wrap,directReturn]);},match:function(){for(var i=0;i<this.pairs.length;i++){var pair=this.pairs[i];if(pair[1].apply(this,arguments)){if((pair[3])||(this.returnWrappers)){return pair[2];}else{return pair[2].apply(this,arguments);}}}
throw new Error("No match found");},unregister:function(name){for(var i=0;i<this.pairs.length;i++){var pair=this.pairs[i];if(pair[0]==name){this.pairs.splice(i,1);return true;}}
return false;}});}
if(!dojo._hasResource["dijit._base.place"]){dojo._hasResource["dijit._base.place"]=true;dojo.provide("dijit._base.place");dijit.getViewport=function(){var _window=dojo.global;var _document=dojo.doc;var w=0,h=0;var de=_document.documentElement;var dew=de.clientWidth,deh=de.clientHeight;if(dojo.isMozilla){var minw,minh,maxw,maxh;var dbw=_document.body.clientWidth;if(dbw>dew){minw=dew;maxw=dbw;}else{maxw=dew;minw=dbw;}
var dbh=_document.body.clientHeight;if(dbh>deh){minh=deh;maxh=dbh;}else{maxh=deh;minh=dbh;}
w=(maxw>_window.innerWidth)?minw:maxw;h=(maxh>_window.innerHeight)?minh:maxh;}else if(!dojo.isOpera&&_window.innerWidth){w=_window.innerWidth;h=_window.innerHeight;}else if(dojo.isIE&&de&&deh){w=dew;h=deh;}else if(dojo.body().clientWidth){w=dojo.body().clientWidth;h=dojo.body().clientHeight;}
var scroll=dojo._docScroll();return{w:w,h:h,l:scroll.x,t:scroll.y};};dijit.placeOnScreen=function(node,pos,corners,tryOnly){var choices=dojo.map(corners,function(corner){return{corner:corner,pos:pos};});return dijit._place(node,choices);}
dijit._place=function(node,choices,layoutNode){var view=dijit.getViewport();if(!node.parentNode||String(node.parentNode.tagName).toLowerCase()!="body"){dojo.body().appendChild(node);}
var best=null;dojo.some(choices,function(choice){var corner=choice.corner;var pos=choice.pos;if(layoutNode){layoutNode(node,choice.aroundCorner,corner);}
var style=node.style;var oldDisplay=style.display;var oldVis=style.visibility;style.visibility="hidden";style.display="";var mb=dojo.marginBox(node);style.display=oldDisplay;style.visibility=oldVis;var startX=(corner.charAt(1)=='L'?pos.x:Math.max(view.l,pos.x-mb.w)),startY=(corner.charAt(0)=='T'?pos.y:Math.max(view.t,pos.y-mb.h)),endX=(corner.charAt(1)=='L'?Math.min(view.l+view.w,startX+mb.w):pos.x),endY=(corner.charAt(0)=='T'?Math.min(view.t+view.h,startY+mb.h):pos.y),width=endX-startX,height=endY-startY,overflow=(mb.w-width)+(mb.h-height);if(best==null||overflow<best.overflow){best={corner:corner,aroundCorner:choice.aroundCorner,x:startX,y:startY,w:width,h:height,overflow:overflow};}
return!overflow;});node.style.left=best.x+"px";node.style.top=best.y+"px";if(best.overflow&&layoutNode){layoutNode(node,best.aroundCorner,best.corner);}
return best;}
dijit.placeOnScreenAroundNode=function(node,aroundNode,aroundCorners,layoutNode){aroundNode=dojo.byId(aroundNode);var oldDisplay=aroundNode.style.display;aroundNode.style.display="";var aroundNodeW=aroundNode.offsetWidth;var aroundNodeH=aroundNode.offsetHeight;var aroundNodePos=dojo.coords(aroundNode,true);aroundNode.style.display=oldDisplay;return dijit._placeOnScreenAroundRect(node,aroundNodePos.x,aroundNodePos.y,aroundNodeW,aroundNodeH,aroundCorners,layoutNode);};dijit.placeOnScreenAroundRectangle=function(node,aroundRect,aroundCorners,layoutNode){return dijit._placeOnScreenAroundRect(node,aroundRect.x,aroundRect.y,aroundRect.width,aroundRect.height,aroundCorners,layoutNode);};dijit._placeOnScreenAroundRect=function(node,x,y,width,height,aroundCorners,layoutNode){var choices=[];for(var nodeCorner in aroundCorners){choices.push({aroundCorner:nodeCorner,corner:aroundCorners[nodeCorner],pos:{x:x+(nodeCorner.charAt(1)=='L'?0:width),y:y+(nodeCorner.charAt(0)=='T'?0:height)}});}
return dijit._place(node,choices,layoutNode);};dijit.placementRegistry=new dojo.AdapterRegistry();dijit.placementRegistry.register("node",function(n,x){return typeof x=="object"&&typeof x.offsetWidth!="undefined"&&typeof x.offsetHeight!="undefined";},dijit.placeOnScreenAroundNode);dijit.placementRegistry.register("rect",function(n,x){return typeof x=="object"&&"x"in x&&"y"in x&&"width"in x&&"height"in x;},dijit.placeOnScreenAroundRectangle);dijit.placeOnScreenAroundElement=function(node,aroundElement,aroundCorners,layoutNode){return dijit.placementRegistry.match.apply(dijit.placementRegistry,arguments);};}
if(!dojo._hasResource["dijit._base.window"]){dojo._hasResource["dijit._base.window"]=true;dojo.provide("dijit._base.window");dijit.getDocumentWindow=function(doc){if(dojo.isIE&&window!==document.parentWindow&&!doc._parentWindow){doc.parentWindow.execScript("document._parentWindow = window;","Javascript");var win=doc._parentWindow;doc._parentWindow=null;return win;}
return doc._parentWindow||doc.parentWindow||doc.defaultView;}}
if(!dojo._hasResource["dijit._base.popup"]){dojo._hasResource["dijit._base.popup"]=true;dojo.provide("dijit._base.popup");dijit.popup=new function(){var stack=[],beginZIndex=1000,idGen=1;this.prepare=function(node){dojo.body().appendChild(node);var s=node.style;if(s.display=="none"){s.display="";}
s.visibility="hidden";s.position="absolute";s.top="-9999px";};this.open=function(args){var widget=args.popup,orient=args.orient||{'BL':'TL','TL':'BL'},around=args.around,id=(args.around&&args.around.id)?(args.around.id+"_dropdown"):("popup_"+idGen++);var wrapper=dojo.doc.createElement("div");dijit.setWaiRole(wrapper,"presentation");wrapper.id=id;wrapper.className="dijitPopup";wrapper.style.zIndex=beginZIndex+stack.length;wrapper.style.left=wrapper.style.top="0px";wrapper.style.visibility="hidden";if(args.parent){wrapper.dijitPopupParent=args.parent.id;}
dojo.body().appendChild(wrapper);var s=widget.domNode.style;s.display="";s.visibility="";s.position="";wrapper.appendChild(widget.domNode);var iframe=new dijit.BackgroundIframe(wrapper);var best=around?dijit.placeOnScreenAroundElement(wrapper,around,orient,widget.orient?dojo.hitch(widget,"orient"):null):dijit.placeOnScreen(wrapper,args,orient=='R'?['TR','BR','TL','BL']:['TL','BL','TR','BR']);wrapper.style.visibility="visible";var handlers=[];var getTopPopup=function(){for(var pi=stack.length-1;pi>0&&stack[pi].parent===stack[pi-1].widget;pi--){}
return stack[pi];}
handlers.push(dojo.connect(wrapper,"onkeypress",this,function(evt){if(evt.charOrCode==dojo.keys.ESCAPE&&args.onCancel){dojo.stopEvent(evt);args.onCancel();}else if(evt.charOrCode===dojo.keys.TAB){dojo.stopEvent(evt);var topPopup=getTopPopup();if(topPopup&&topPopup.onCancel){topPopup.onCancel();}}}));if(widget.onCancel){handlers.push(dojo.connect(widget,"onCancel",null,args.onCancel));}
handlers.push(dojo.connect(widget,widget.onExecute?"onExecute":"onChange",null,function(){var topPopup=getTopPopup();if(topPopup&&topPopup.onExecute){topPopup.onExecute();}}));stack.push({wrapper:wrapper,iframe:iframe,widget:widget,parent:args.parent,onExecute:args.onExecute,onCancel:args.onCancel,onClose:args.onClose,handlers:handlers});if(widget.onOpen){widget.onOpen(best);}
return best;};this.close=function(popup){while(dojo.some(stack,function(elem){return elem.widget==popup;})){var top=stack.pop(),wrapper=top.wrapper,iframe=top.iframe,widget=top.widget,onClose=top.onClose;if(widget.onClose){widget.onClose();}
dojo.forEach(top.handlers,dojo.disconnect);if(!widget||!widget.domNode){return;}
this.prepare(widget.domNode);iframe.destroy();dojo._destroyElement(wrapper);if(onClose){onClose();}}};}();dijit._frames=new function(){var queue=[];this.pop=function(){var iframe;if(queue.length){iframe=queue.pop();iframe.style.display="";}else{if(dojo.isIE){var burl=dojo.config["dojoBlankHtmlUrl"]||(dojo.moduleUrl("dojo","resources/blank.html")+"")||"javascript:\"\"";var html="<iframe src='"+burl+"'"
+" style='position: absolute; left: 0px; top: 0px;"
+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";iframe=dojo.doc.createElement(html);}else{iframe=dojo.doc.createElement("iframe");iframe.src='javascript:""';iframe.className="dijitBackgroundIframe";}
iframe.tabIndex=-1;dojo.body().appendChild(iframe);}
return iframe;};this.push=function(iframe){iframe.style.display="";if(dojo.isIE){iframe.style.removeExpression("width");iframe.style.removeExpression("height");}
queue.push(iframe);}}();if(dojo.isIE<7){dojo.addOnLoad(function(){var f=dijit._frames;dojo.forEach([f.pop()],f.push);});}
dijit.BackgroundIframe=function(node){if(!node.id){throw new Error("no id");}
if((dojo.isIE&&dojo.isIE<7)||(dojo.isFF&&dojo.isFF<3&&dojo.hasClass(dojo.body(),"dijit_a11y"))){var iframe=dijit._frames.pop();node.appendChild(iframe);if(dojo.isIE){iframe.style.setExpression("width",dojo._scopeName+".doc.getElementById('"+node.id+"').offsetWidth");iframe.style.setExpression("height",dojo._scopeName+".doc.getElementById('"+node.id+"').offsetHeight");}
this.iframe=iframe;}};dojo.extend(dijit.BackgroundIframe,{destroy:function(){if(this.iframe){dijit._frames.push(this.iframe);delete this.iframe;}}});}
if(!dojo._hasResource["dijit._base.scroll"]){dojo._hasResource["dijit._base.scroll"]=true;dojo.provide("dijit._base.scroll");dijit.scrollIntoView=function(node){node=dojo.byId(node);var body=node.ownerDocument.body;var html=body.parentNode;if(dojo.isFF==2||node==body||node==html){node.scrollIntoView(false);return;}
var rtl=!dojo._isBodyLtr();var strict=dojo.doc.compatMode!='BackCompat';var scrollRoot=(strict&&!dojo.isSafari)?html:body;function addPseudoAttrs(element){var parent=element.parentNode;var offsetParent=element.offsetParent;if(offsetParent==null){element=scrollRoot;offsetParent=html;parent=null;}
element._offsetParent=(offsetParent==body)?scrollRoot:offsetParent;element._parent=(parent==body)?scrollRoot:parent;element._start={H:element.offsetLeft,V:element.offsetTop};element._scroll={H:element.scrollLeft,V:element.scrollTop};element._renderedSize={H:element.offsetWidth,V:element.offsetHeight};var bp=dojo._getBorderExtents(element);element._borderStart={H:bp.l,V:bp.t};element._borderSize={H:bp.w,V:bp.h};element._clientSize=(element._offsetParent==html&&dojo.isSafari&&strict)?{H:html.clientWidth,V:html.clientHeight}:{H:element.clientWidth,V:element.clientHeight};element._scrollBarSize={V:null,H:null};for(var dir in element._scrollBarSize){var scrollBar=element._renderedSize[dir]-element._clientSize[dir]-element._borderSize[dir];element._scrollBarSize[dir]=(element._clientSize[dir]>0&&scrollBar>=15&&scrollBar<=17)?scrollBar:0;}
element._isScrollable={V:null,H:null};for(dir in element._isScrollable){var otherDir=dir=="H"?"V":"H";element._isScrollable[dir]=element==scrollRoot||element._scroll[dir]||element._scrollBarSize[otherDir];}}
var parent=node;while(parent!=null){addPseudoAttrs(parent);var next=parent._parent;if(next){next._child=parent;}
parent=next;}
for(var dir in scrollRoot._renderedSize){scrollRoot._renderedSize[dir]=Math.min(scrollRoot._clientSize[dir],scrollRoot._renderedSize[dir]);}
var element=node;while(element!=scrollRoot){parent=element._parent;if(parent.tagName=="TD"){var table=parent._parent._parent._parent;if(table._offsetParent==element._offsetParent&&parent._offsetParent!=element._offsetParent){parent=table;}}
var startIsRelative=element==scrollRoot||(parent._offsetParent!=element._offsetParent);for(dir in element._start){var otherDir=dir=="H"?"V":"H";if(rtl&&dir=="H"&&(dojo.isSafari||dojo.isIE)&&parent._clientSize.H>0){var delta=parent.scrollWidth-parent._clientSize.H;if(delta>0){parent._scroll.H-=delta;}}
if(dojo.isIE&&parent._offsetParent.tagName=="TABLE"){parent._start[dir]-=parent._offsetParent._borderStart[dir];parent._borderStart[dir]=parent._borderSize[dir]=0;}
if(parent._clientSize[dir]==0){parent._renderedSize[dir]=parent._clientSize[dir]=parent._child._clientSize[dir];if(rtl&&dir=="H"){parent._start[dir]-=parent._renderedSize[dir];}}else{parent._renderedSize[dir]-=parent._borderSize[dir]+parent._scrollBarSize[dir];}
parent._start[dir]+=parent._borderStart[dir];var underflow=element._start[dir]-(startIsRelative?0:parent._start[dir])-parent._scroll[dir];var overflow=underflow+element._renderedSize[dir]-parent._renderedSize[dir];var scrollAmount,scrollAttr=(dir=="H")?"scrollLeft":"scrollTop";var reverse=(dir=="H"&&rtl);var underflowScroll=reverse?-overflow:underflow;var overflowScroll=reverse?-underflow:overflow;if(underflowScroll<=0){scrollAmount=underflowScroll;}else if(overflowScroll<=0){scrollAmount=0;}else if(underflowScroll<overflowScroll){scrollAmount=underflowScroll;}else{scrollAmount=overflowScroll;}
var scrolledAmount=0;if(scrollAmount!=0){var oldScroll=parent[scrollAttr];parent[scrollAttr]+=reverse?-scrollAmount:scrollAmount;scrolledAmount=parent[scrollAttr]-oldScroll;underflow-=scrolledAmount;overflowScroll-=reverse?-scrolledAmount:scrolledAmount;}
parent._renderedSize[dir]=element._renderedSize[dir]+parent._scrollBarSize[dir]-
((parent._isScrollable[dir]&&overflowScroll>0)?overflowScroll:0);parent._start[dir]+=(underflow>=0||!parent._isScrollable[dir])?underflow:0;}
element=parent;}};}
if(!dojo._hasResource["dijit._base.sniff"]){dojo._hasResource["dijit._base.sniff"]=true;dojo.provide("dijit._base.sniff");(function(){var d=dojo;var ie=d.isIE;var opera=d.isOpera;var maj=Math.floor;var ff=d.isFF;var boxModel=d.boxModel.replace(/-/,'');var classes={dj_ie:ie,dj_ie6:maj(ie)==6,dj_ie7:maj(ie)==7,dj_iequirks:ie&&d.isQuirks,dj_opera:opera,dj_opera8:maj(opera)==8,dj_opera9:maj(opera)==9,dj_khtml:d.isKhtml,dj_safari:d.isSafari,dj_gecko:d.isMozilla,dj_ff2:maj(ff)==2,dj_ff3:maj(ff)==3};classes["dj_"+boxModel]=true;var html=dojo.doc.documentElement;for(var p in classes){if(classes[p]){if(html.className){html.className+=" "+p;}else{html.className=p;}}}
dojo._loaders.unshift(function(){if(!dojo._isBodyLtr()){html.className+=" dijitRtl";for(var p in classes){if(classes[p]){html.className+=" "+p+"-rtl";}}}});})();}
if(!dojo._hasResource["dijit._base.typematic"]){dojo._hasResource["dijit._base.typematic"]=true;dojo.provide("dijit._base.typematic");dijit.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=(this._currentTimeout<0)?this._initialDelay:((this._subsequentDelay>1)?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay));this._timer=setTimeout(dojo.hitch(this,"_fireEventAndReload"),this._currentTimeout);},trigger:function(evt,_this,node,callback,obj,subsequentDelay,initialDelay){if(obj!=this._obj){this.stop();this._initialDelay=initialDelay||500;this._subsequentDelay=subsequentDelay||0.90;this._obj=obj;this._evt=evt;this._node=node;this._currentTimeout=-1;this._count=-1;this._callback=dojo.hitch(_this,callback);this._fireEventAndReload();}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null;}
if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null;}},addKeyListener:function(node,keyObject,_this,callback,subsequentDelay,initialDelay){if(keyObject.keyCode){keyObject.charOrCode=keyObject.keyCode;dojo.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}else if(keyObject.charCode){keyObject.charOrCode=String.fromCharCode(keyObject.charCode);dojo.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}
return[dojo.connect(node,"onkeypress",this,function(evt){if(evt.charOrCode==keyObject.charOrCode&&(keyObject.ctrlKey===undefined||keyObject.ctrlKey==evt.ctrlKey)&&(keyObject.altKey===undefined||keyObject.altKey==evt.ctrlKey)&&(keyObject.shiftKey===undefined||keyObject.shiftKey==evt.ctrlKey)){dojo.stopEvent(evt);dijit.typematic.trigger(keyObject,_this,node,callback,keyObject,subsequentDelay,initialDelay);}else if(dijit.typematic._obj==keyObject){dijit.typematic.stop();}}),dojo.connect(node,"onkeyup",this,function(evt){if(dijit.typematic._obj==keyObject){dijit.typematic.stop();}})];},addMouseListener:function(node,_this,callback,subsequentDelay,initialDelay){var dc=dojo.connect;return[dc(node,"mousedown",this,function(evt){dojo.stopEvent(evt);dijit.typematic.trigger(evt,_this,node,callback,node,subsequentDelay,initialDelay);}),dc(node,"mouseup",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(node,"mouseout",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(node,"mousemove",this,function(evt){dojo.stopEvent(evt);}),dc(node,"dblclick",this,function(evt){dojo.stopEvent(evt);if(dojo.isIE){dijit.typematic.trigger(evt,_this,node,callback,node,subsequentDelay,initialDelay);setTimeout(dojo.hitch(this,dijit.typematic.stop),50);}})];},addListener:function(mouseNode,keyNode,keyObject,_this,callback,subsequentDelay,initialDelay){return this.addKeyListener(keyNode,keyObject,_this,callback,subsequentDelay,initialDelay).concat(this.addMouseListener(mouseNode,_this,callback,subsequentDelay,initialDelay));}};}
if(!dojo._hasResource["dijit._base.wai"]){dojo._hasResource["dijit._base.wai"]=true;dojo.provide("dijit._base.wai");dijit.wai={onload:function(){var div=dojo.doc.createElement("div");div.id="a11yTestNode";div.style.cssText='border: 1px solid;'
+'border-color:red green;'
+'position: absolute;'
+'height: 5px;'
+'top: -999px;'
+'background-image: url("'+(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif"))+'");';dojo.body().appendChild(div);var cs=dojo.getComputedStyle(div);if(cs){var bkImg=cs.backgroundImage;var needsA11y=(cs.borderTopColor==cs.borderRightColor)||(bkImg!=null&&(bkImg=="none"||bkImg=="url(invalid-url:)"));dojo[needsA11y?"addClass":"removeClass"](dojo.body(),"dijit_a11y");if(dojo.isIE){div.outerHTML="";}else{dojo.body().removeChild(div);}}}};if(dojo.isIE||dojo.isMoz){dojo._loaders.unshift(dijit.wai.onload);}
dojo.mixin(dijit,{_XhtmlRoles:/banner|contentinfo|definition|main|navigation|search|note|secondary|seealso/,hasWaiRole:function(elem,role){var waiRole=this.getWaiRole(elem);if(role){return(waiRole.indexOf(role)>-1);}else{return(waiRole.length>0);}},getWaiRole:function(elem){return dojo.trim((dojo.attr(elem,"role")||"").replace(this._XhtmlRoles,"").replace("wairole:",""));},setWaiRole:function(elem,role){var curRole=dojo.attr(elem,"role")||"";if(dojo.isFF<3||!this._XhtmlRoles.test(curRole)){dojo.attr(elem,"role",dojo.isFF<3?"wairole:"+role:role);}else{if((" "+curRole+" ").indexOf(" "+role+" ")<0){var clearXhtml=dojo.trim(curRole.replace(this._XhtmlRoles,""));var cleanRole=dojo.trim(curRole.replace(clearXhtml,""));dojo.attr(elem,"role",cleanRole+(cleanRole?' ':'')+role);}}},removeWaiRole:function(elem,role){var roleValue=dojo.attr(elem,"role");if(!roleValue){return;}
if(role){var searchRole=dojo.isFF<3?"wairole:"+role:role;var t=dojo.trim((" "+roleValue+" ").replace(" "+searchRole+" "," "));dojo.attr(elem,"role",t);}else{elem.removeAttribute("role");}},hasWaiState:function(elem,state){if(dojo.isFF<3){return elem.hasAttributeNS("http://www.w3.org/2005/07/aaa",state);}else{return elem.hasAttribute?elem.hasAttribute("aria-"+state):!!elem.getAttribute("aria-"+state);}},getWaiState:function(elem,state){if(dojo.isFF<3){return elem.getAttributeNS("http://www.w3.org/2005/07/aaa",state);}else{var value=elem.getAttribute("aria-"+state);return value?value:"";}},setWaiState:function(elem,state,value){if(dojo.isFF<3){elem.setAttributeNS("http://www.w3.org/2005/07/aaa","aaa:"+state,value);}else{elem.setAttribute("aria-"+state,value);}},removeWaiState:function(elem,state){if(dojo.isFF<3){elem.removeAttributeNS("http://www.w3.org/2005/07/aaa",state);}else{elem.removeAttribute("aria-"+state);}}});}
if(!dojo._hasResource["dijit._base"]){dojo._hasResource["dijit._base"]=true;dojo.provide("dijit._base");}
if(!dojo._hasResource["dijit._Widget"]){dojo._hasResource["dijit._Widget"]=true;dojo.provide("dijit._Widget");dojo.require("dijit._base");dojo.connect(dojo,"connect",function(widget,event){if(widget&&dojo.isFunction(widget._onConnect)){widget._onConnect(event);}});dijit._connectOnUseEventHandler=function(event){};(function(){var _attrReg={};var getAttrReg=function(dc){if(!_attrReg[dc]){var r=[];var attrs;var proto=dojo.getObject(dc).prototype;for(var fxName in proto){if(dojo.isFunction(proto[fxName])&&(attrs=fxName.match(/^_set([a-zA-Z]*)Attr$/))&&attrs[1]){r.push(attrs[1].charAt(0).toLowerCase()+attrs[1].substr(1));}}
_attrReg[dc]=r;}
return _attrReg[dc]||[];}
dojo.declare("dijit._Widget",null,{id:"",lang:"",dir:"","class":"",style:"",title:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{id:"",dir:"",lang:"","class":"",style:"",title:""},_deferredConnects:{onClick:"",onDblClick:"",onKeyDown:"",onKeyPress:"",onKeyUp:"",onMouseMove:"",onMouseDown:"",onMouseOut:"",onMouseOver:"",onMouseLeave:"",onMouseEnter:"",onMouseUp:""},onClick:dijit._connectOnUseEventHandler,onDblClick:dijit._connectOnUseEventHandler,onKeyDown:dijit._connectOnUseEventHandler,onKeyPress:dijit._connectOnUseEventHandler,onKeyUp:dijit._connectOnUseEventHandler,onMouseDown:dijit._connectOnUseEventHandler,onMouseMove:dijit._connectOnUseEventHandler,onMouseOut:dijit._connectOnUseEventHandler,onMouseOver:dijit._connectOnUseEventHandler,onMouseLeave:dijit._connectOnUseEventHandler,onMouseEnter:dijit._connectOnUseEventHandler,onMouseUp:dijit._connectOnUseEventHandler,_blankGif:(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif")),postscript:function(params,srcNodeRef){this.create(params,srcNodeRef);},create:function(params,srcNodeRef){this.srcNodeRef=dojo.byId(srcNodeRef);this._connects=[];this._deferredConnects=dojo.clone(this._deferredConnects);for(var attr in this.attributeMap){delete this._deferredConnects[attr];}
for(attr in this._deferredConnects){if(this[attr]!==dijit._connectOnUseEventHandler){delete this._deferredConnects[attr];}}
if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}
if(params){this.params=params;dojo.mixin(this,params);}
this.postMixInProperties();if(!this.id){this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_"));}
dijit.registry.add(this);this.buildRendering();if(this.domNode){this._applyAttributes();for(attr in this.params){this._onConnect(attr);}}
if(this.domNode){this.domNode.setAttribute("widgetId",this.id);}
this.postCreate();if(this.srcNodeRef&&!this.srcNodeRef.parentNode){delete this.srcNodeRef;}
this._created=true;},_applyAttributes:function(){var condAttrApply=function(attr,scope){if((scope.params&&attr in scope.params)||scope[attr]){scope.attr(attr,scope[attr]);}};for(var attr in this.attributeMap){condAttrApply(attr,this);}
dojo.forEach(getAttrReg(this.declaredClass),function(a){if(!(a in this.attributeMap)){condAttrApply(a,this);}},this);},postMixInProperties:function(){},buildRendering:function(){this.domNode=this.srcNodeRef||dojo.doc.createElement('div');},postCreate:function(){},startup:function(){this._started=true;},destroyRecursive:function(preserveDom){this.destroyDescendants(preserveDom);this.destroy(preserveDom);},destroy:function(preserveDom){this.uninitialize();dojo.forEach(this._connects,function(array){dojo.forEach(array,dojo.disconnect);});dojo.forEach(this._supportingWidgets||[],function(w){if(w.destroy){w.destroy();}});this.destroyRendering(preserveDom);dijit.registry.remove(this.id);},destroyRendering:function(preserveDom){if(this.bgIframe){this.bgIframe.destroy(preserveDom);delete this.bgIframe;}
if(this.domNode){if(!preserveDom){dojo._destroyElement(this.domNode);}
delete this.domNode;}
if(this.srcNodeRef){if(!preserveDom){dojo._destroyElement(this.srcNodeRef);}
delete this.srcNodeRef;}},destroyDescendants:function(preserveDom){dojo.forEach(this.getDescendants(),function(widget){if(widget.destroy){widget.destroy(preserveDom);}});},uninitialize:function(){return false;},onFocus:function(){},onBlur:function(){},_onFocus:function(e){this.onFocus();},_onBlur:function(){this.onBlur();},_onConnect:function(event){if(event in this._deferredConnects){var mapNode=this[this._deferredConnects[event]||'domNode'];this.connect(mapNode,event.toLowerCase(),this[event]);delete this._deferredConnects[event];}},_setClassAttr:function(value){var mapNode=this[this.attributeMap["class"]||'domNode'];dojo.removeClass(mapNode,this["class"])
this["class"]=value;dojo.addClass(mapNode,value);},_setStyleAttr:function(value){var mapNode=this[this.attributeMap["style"]||'domNode'];if(mapNode.style.cssText){mapNode.style.cssText+="; "+value;}else{mapNode.style.cssText=value;}
this["style"]=value;},setAttribute:function(attr,value){dojo.deprecated(this.declaredClass+"::setAttribute() is deprecated. Use attr() instead.","","2.0");this.attr(attr,value);},_attrToDom:function(attr,value){var commands=this.attributeMap[attr];dojo.forEach(dojo.isArray(commands)?commands:[commands],function(command){var mapNode=this[command.node||command||"domNode"];var type=command.type||"attribute";switch(type){case"attribute":if(dojo.isFunction(value)){value=dojo.hitch(this,value);}
if(/^on[A-Z][a-zA-Z]*$/.test(attr)){attr=attr.toLowerCase();}
dojo.attr(mapNode,attr,value);break;case"innerHTML":mapNode.innerHTML=value;break;case"class":dojo.removeClass(mapNode,this[attr]);dojo.addClass(mapNode,value);break;}},this);this[attr]=value;},attr:function(name,value){var args=arguments.length;if(args==1&&!dojo.isString(name)){for(var x in name){this.attr(x,name[x]);}
return this;}
var names=this._getAttrNames(name);if(args==2){if(this[names.s]){return this[names.s](value)||this;}else{if(name in this.attributeMap){this._attrToDom(name,value);}
this[name]=value;}
return this;}else{if(this[names.g]){return this[names.g]();}else{return this[name];}}},_attrPairNames:{},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name]){return apn[name];}
var uc=name.charAt(0).toUpperCase()+name.substr(1);return apn[name]={n:name+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"};},toString:function(){return'[Widget '+this.declaredClass+', '+(this.id||'NO ID')+']';},getDescendants:function(){if(this.containerNode){var list=dojo.query('[widgetId]',this.containerNode);return list.map(dijit.byNode);}else{return[];}},nodesWithKeyClick:["input","button"],connect:function(obj,event,method){var d=dojo;var dco=d.hitch(d,"connect",obj);var handles=[];if(event=="ondijitclick"){if(!this.nodesWithKeyClick[obj.nodeName]){var m=d.hitch(this,method);handles.push(dco("onkeydown",this,function(e){if(!d.isFF&&e.keyCode==d.keys.ENTER){return m(e);}else if(e.keyCode==d.keys.SPACE){d.stopEvent(e);}}),dco("onkeyup",this,function(e){if(e.keyCode==d.keys.SPACE){return m(e);}}));if(d.isFF){handles.push(dco("onkeypress",this,function(e){if(e.keyCode==d.keys.ENTER){return m(e);}}));}}
event="onclick";}
handles.push(dco(event,this,method));this._connects.push(handles);return handles;},disconnect:function(handles){for(var i=0;i<this._connects.length;i++){if(this._connects[i]==handles){dojo.forEach(handles,dojo.disconnect);this._connects.splice(i,1);return;}}},isLeftToRight:function(){return dojo._isBodyLtr();},isFocusable:function(){return this.focus&&(dojo.style(this.domNode,"display")!="none");},placeAt:function(reference,position){if(reference["declaredClass"]&&reference["addChild"]){reference.addChild(this,position);}else{dojo.place(this.domNode,reference,position);}
return this;}});})();}
if(!dojo._hasResource["dijit._Container"]){dojo._hasResource["dijit._Container"]=true;dojo.provide("dijit._Container");dojo.declare("dijit._Contained",null,{getParent:function(){for(var p=this.domNode.parentNode;p;p=p.parentNode){var id=p.getAttribute&&p.getAttribute("widgetId");if(id){var parent=dijit.byId(id);return parent.isContainer?parent:null;}}
return null;},_getSibling:function(which){var node=this.domNode;do{node=node[which+"Sibling"];}while(node&&node.nodeType!=1);if(!node){return null;}
var id=node.getAttribute("widgetId");return dijit.byId(id);},getPreviousSibling:function(){return this._getSibling("previous");},getNextSibling:function(){return this._getSibling("next");},getIndexInParent:function(){var p=this.getParent();if(!p||!p.getIndexOfChild){return-1;}
return p.getIndexOfChild(this);}});dojo.declare("dijit._Container",null,{isContainer:true,buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},addChild:function(widget,insertIndex){var refNode=this.containerNode;if(insertIndex&&typeof insertIndex=="number"){var children=dojo.query("> [widgetId]",refNode);if(children&&children.length>=insertIndex){refNode=children[insertIndex-1];insertIndex="after";}}
dojo.place(widget.domNode,refNode,insertIndex);if(this._started&&!widget._started){widget.startup();}},removeChild:function(widget){if(typeof widget=="number"&&widget>0){widget=this.getChildren()[widget];}
if(!widget||!widget.domNode){return;}
var node=widget.domNode;node.parentNode.removeChild(node);},_nextElement:function(node){do{node=node.nextSibling;}while(node&&node.nodeType!=1);return node;},_firstElement:function(node){node=node.firstChild;if(node&&node.nodeType!=1){node=this._nextElement(node);}
return node;},getChildren:function(){return dojo.query("> [widgetId]",this.containerNode).map(dijit.byNode);},hasChildren:function(){return!!this._firstElement(this.containerNode);},destroyDescendants:function(preserveDom){dojo.forEach(this.getChildren(),function(child){child.destroyRecursive(preserveDom);});},_getSiblingOfChild:function(child,dir){var node=child.domNode;var which=(dir>0?"nextSibling":"previousSibling");do{node=node[which];}while(node&&(node.nodeType!=1||!dijit.byNode(node)));return node?dijit.byNode(node):null;},getIndexOfChild:function(child){var children=this.getChildren();for(var i=0,c;c=children[i];i++){if(c==child){return i;}}
return-1;}});dojo.declare("dijit._KeyNavContainer",[dijit._Container],{_keyNavCodes:{},connectKeyNavHandlers:function(prevKeyCodes,nextKeyCodes){var keyCodes=this._keyNavCodes={};var prev=dojo.hitch(this,this.focusPrev);var next=dojo.hitch(this,this.focusNext);dojo.forEach(prevKeyCodes,function(code){keyCodes[code]=prev});dojo.forEach(nextKeyCodes,function(code){keyCodes[code]=next});this.connect(this.domNode,"onkeypress","_onContainerKeypress");this.connect(this.domNode,"onfocus","_onContainerFocus");},startupKeyNavChildren:function(){dojo.forEach(this.getChildren(),dojo.hitch(this,"_startupChild"));},addChild:function(widget,insertIndex){dijit._KeyNavContainer.superclass.addChild.apply(this,arguments);this._startupChild(widget);},focus:function(){this.focusFirstChild();},focusFirstChild:function(){this.focusChild(this._getFirstFocusableChild());},focusNext:function(){if(this.focusedChild&&this.focusedChild.hasNextFocalNode&&this.focusedChild.hasNextFocalNode()){this.focusedChild.focusNext();return;}
var child=this._getNextFocusableChild(this.focusedChild,1);if(child.getFocalNodes){this.focusChild(child,child.getFocalNodes()[0]);}else{this.focusChild(child);}},focusPrev:function(){if(this.focusedChild&&this.focusedChild.hasPrevFocalNode&&this.focusedChild.hasPrevFocalNode()){this.focusedChild.focusPrev();return;}
var child=this._getNextFocusableChild(this.focusedChild,-1);if(child.getFocalNodes){var nodes=child.getFocalNodes();this.focusChild(child,nodes[nodes.length-1]);}else{this.focusChild(child);}},focusChild:function(widget,node){if(widget){if(this.focusedChild&&widget!==this.focusedChild){this._onChildBlur(this.focusedChild);}
this.focusedChild=widget;if(node&&widget.focusFocalNode){widget.focusFocalNode(node);}else{widget.focus();}}},_startupChild:function(widget){if(widget.getFocalNodes){dojo.forEach(widget.getFocalNodes(),function(node){dojo.attr(node,"tabindex",-1);this._connectNode(node);},this);}else{var node=widget.focusNode||widget.domNode;if(widget.isFocusable()){dojo.attr(node,"tabindex",-1);}
this._connectNode(node);}},_connectNode:function(node){this.connect(node,"onfocus","_onNodeFocus");this.connect(node,"onblur","_onNodeBlur");},_onContainerFocus:function(evt){if(evt.target===this.domNode){this.focusFirstChild();}},_onContainerKeypress:function(evt){if(evt.ctrlKey||evt.altKey){return;}
var func=this._keyNavCodes[evt.charOrCode];if(func){func();dojo.stopEvent(evt);}},_onNodeFocus:function(evt){dojo.attr(this.domNode,"tabindex",-1);var widget=dijit.getEnclosingWidget(evt.target);if(widget&&widget.isFocusable()){this.focusedChild=widget;}
dojo.stopEvent(evt);},_onNodeBlur:function(evt){if(this.tabIndex){dojo.attr(this.domNode,"tabindex",this.tabIndex);}
dojo.stopEvent(evt);},_onChildBlur:function(widget){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getNextFocusableChild:function(child,dir){if(child){child=this._getSiblingOfChild(child,dir);}
var children=this.getChildren();for(var i=0;i<children.length;i++){if(!child){child=children[(dir>0)?0:(children.length-1)];}
if(child.isFocusable()){return child;}
child=this._getSiblingOfChild(child,dir);}
return null;}});}
if(!dojo._hasResource["dijit.layout._LayoutWidget"]){dojo._hasResource["dijit.layout._LayoutWidget"]=true;dojo.provide("dijit.layout._LayoutWidget");dojo.declare("dijit.layout._LayoutWidget",[dijit._Widget,dijit._Container,dijit._Contained],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,postCreate:function(){dojo.addClass(this.domNode,"dijitContainer");dojo.addClass(this.domNode,this.baseClass);},startup:function(){if(this._started){return;}
dojo.forEach(this.getChildren(),function(child){child.startup();});if(!this.getParent||!this.getParent()){this.resize();this.connect(dojo.global,'onresize','resize');}
this.inherited(arguments);},resize:function(changeSize,resultSize){var node=this.domNode;if(changeSize){dojo.marginBox(node,changeSize);if(changeSize.t){node.style.top=changeSize.t+"px";}
if(changeSize.l){node.style.left=changeSize.l+"px";}}
var mb=resultSize||{};dojo.mixin(mb,changeSize||{});if(!("h"in mb)||!("w"in mb)){mb=dojo.mixin(dojo.marginBox(node),mb);}
var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var be=dojo._getBorderExtents(node,cs);var bb=this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)};var pe=dojo._getPadExtents(node,cs);this._contentBox={l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h};this.layout();},layout:function(){},_setupChild:function(child){if(child.baseClass){dojo.addClass(child.domNode,this.baseClass+"-"+child.baseClass);}},addChild:function(child,insertIndex){this.inherited(arguments);if(this._started){this._setupChild(child);}},removeChild:function(child){if(child.baseClass){dojo.removeClass(child.domNode,this.baseClass+"-"+child.baseClass);}
this.inherited(arguments);}});dijit.layout.marginBox2contentBox=function(node,mb){var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var pb=dojo._getPadBorderExtents(node,cs);return{l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)};};(function(){var capitalize=function(word){return word.substring(0,1).toUpperCase()+word.substring(1);};var size=function(widget,dim){widget.resize?widget.resize(dim):dojo.marginBox(widget.domNode,dim);dojo.mixin(widget,dojo.marginBox(widget.domNode));dojo.mixin(widget,dim);};dijit.layout.layoutChildren=function(container,dim,children){dim=dojo.mixin({},dim);dojo.addClass(container,"dijitLayoutContainer");children=dojo.filter(children,function(item){return item.layoutAlign!="client";}).concat(dojo.filter(children,function(item){return item.layoutAlign=="client";}));dojo.forEach(children,function(child){var elm=child.domNode,pos=child.layoutAlign;var elmStyle=elm.style;elmStyle.left=dim.l+"px";elmStyle.top=dim.t+"px";elmStyle.bottom=elmStyle.right="auto";dojo.addClass(elm,"dijitAlign"+capitalize(pos));if(pos=="top"||pos=="bottom"){size(child,{w:dim.w});dim.h-=child.h;if(pos=="top"){dim.t+=child.h;}else{elmStyle.top=dim.t+dim.h+"px";}}else if(pos=="left"||pos=="right"){size(child,{h:dim.h});dim.w-=child.w;if(pos=="left"){dim.l+=child.w;}else{elmStyle.left=dim.l+dim.w+"px";}}else if(pos=="client"){size(child,dim);}});};})();}
if(!dojo._hasResource["dojo.string"]){dojo._hasResource["dojo.string"]=true;dojo.provide("dojo.string");dojo.string.rep=function(str,num){if(num<=0||!str){return"";}
var buf=[];for(;;){if(num&1){buf.push(str);}
if(!(num>>=1)){break;}
str+=str;}
return buf.join("");};dojo.string.pad=function(text,size,ch,end){if(!ch){ch='0';}
var out=String(text),pad=dojo.string.rep(ch,Math.ceil((size-out.length)/ch.length));return end?out+pad:pad+out;};dojo.string.substitute=function(template,map,transform,thisObject){thisObject=thisObject||dojo.global;transform=(!transform)?function(v){return v;}:dojo.hitch(thisObject,transform);return template.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(match,key,format){var value=dojo.getObject(key,false,map);if(format){value=dojo.getObject(format,false,thisObject).call(thisObject,value,key);}
return transform(value,key).toString();});};dojo.string.trim=function(str){str=str.replace(/^\s+/,'');for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}
return str;};}
if(!dojo._hasResource["dojo.html"]){dojo._hasResource["dojo.html"]=true;dojo.provide("dojo.html");(function(){var idCounter=0;dojo.html._secureForInnerHtml=function(cont){return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"");};dojo.html._emptyNode=function(node){while(node.firstChild){dojo._destroyElement(node.firstChild);}};dojo.html._setNodeContent=function(node,cont,shouldEmptyFirst){if(shouldEmptyFirst){dojo.html._emptyNode(node);}
if(typeof cont=="string"){var pre='',post='',walk=0,name=node.nodeName.toLowerCase();switch(name){case'tr':pre='<tr>';post='</tr>';walk+=1;case'tbody':case'thead':pre='<tbody>'+pre;post+='</tbody>';walk+=1;case'table':pre='<table>'+pre;post+='</table>';walk+=1;break;}
if(walk){var n=node.ownerDocument.createElement('div');n.innerHTML=pre+cont+post;do{n=n.firstChild;}while(--walk);dojo.forEach(n.childNodes,function(n){node.appendChild(n.cloneNode(true));});}else{node.innerHTML=cont;}}else{if(cont.nodeType){node.appendChild(cont);}else{dojo.forEach(cont,function(n){node.appendChild(n.cloneNode(true));});}}
return node;};dojo.declare("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,constructor:function(params,node){dojo.mixin(this,params||{});node=this.node=dojo.byId(this.node||node);if(!this.id){this.id=["Setter",(node)?node.id||node.tagName:"",idCounter++].join("_");}
if(!(this.node||node)){new Error(this.declaredClass+": no node provided to "+this.id);}},set:function(cont,params){if(undefined!==cont){this.content=cont;}
if(params){this._mixin(params);}
this.onBegin();this.setContent();this.onEnd();return this.node;},setContent:function(){var node=this.node;if(!node){console.error("setContent given no node");}
try{node=dojo.html._setNodeContent(node,this.content);}catch(e){var errMess=this.onContentError(e);try{node.innerHTML=errMess;}catch(e){console.error('Fatal '+this.declaredClass+'.setContent could not change content due to '+e.message,e);}}
this.node=node;},empty:function(){if(this.parseResults&&this.parseResults.length){dojo.forEach(this.parseResults,function(w){if(w.destroy){w.destroy();}});delete this.parseResults;}
dojo.html._emptyNode(this.node);},onBegin:function(){var cont=this.content;if(dojo.isString(cont)){if(this.cleanContent){cont=dojo.html._secureForInnerHtml(cont);}
if(this.extractContent){var match=cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(match){cont=match[1];}}}
this.empty();this.content=cont;return this.node;},onEnd:function(){if(this.parseContent){this._parse();}
return this.node;},tearDown:function(){delete this.parseResults;delete this.node;delete this.content;},onContentError:function(err){return"Error occured setting content: "+err;},_mixin:function(params){var empty={},key;for(key in params){if(key in empty){continue;}
this[key]=params[key];}},_parse:function(){var rootNode=this.node;try{this.parseResults=dojo.parser.parse(rootNode,true);}catch(e){this._onError('Content',e,"Error parsing in _ContentSetter#"+this.id);}},_onError:function(type,err,consoleText){var errText=this['on'+type+'Error'].call(this,err);if(consoleText){console.error(consoleText,err);}else if(errText){dojo.html._setNodeContent(this.node,errText,true);}}});dojo.html.set=function(node,cont,params){if(undefined==cont){console.warn("dojo.html.set: no cont argument provided, using empty string");cont="";}
if(!params){return dojo.html._setNodeContent(node,cont,true);}else{var op=new dojo.html._ContentSetter(dojo.mixin(params,{content:cont,node:node}));return op.set();}};})();}
if(!dojo._hasResource["dojo.i18n"]){dojo._hasResource["dojo.i18n"]=true;dojo.provide("dojo.i18n");dojo.i18n.getLocalization=function(packageName,bundleName,locale){locale=dojo.i18n.normalizeLocale(locale);var elements=locale.split('-');var module=[packageName,"nls",bundleName].join('.');var bundle=dojo._loadedModules[module];if(bundle){var localization;for(var i=elements.length;i>0;i--){var loc=elements.slice(0,i).join('_');if(bundle[loc]){localization=bundle[loc];break;}}
if(!localization){localization=bundle.ROOT;}
if(localization){var clazz=function(){};clazz.prototype=localization;return new clazz();}}
throw new Error("Bundle not found: "+bundleName+" in "+packageName+" , locale="+locale);};dojo.i18n.normalizeLocale=function(locale){var result=locale?locale.toLowerCase():dojo.locale;if(result=="root"){result="ROOT";}
return result;};dojo.i18n._requireLocalization=function(moduleName,bundleName,locale,availableFlatLocales){var targetLocale=dojo.i18n.normalizeLocale(locale);var bundlePackage=[moduleName,"nls",bundleName].join(".");var bestLocale="";if(availableFlatLocales){var flatLocales=availableFlatLocales.split(",");for(var i=0;i<flatLocales.length;i++){if(targetLocale["indexOf"](flatLocales[i])==0){if(flatLocales[i].length>bestLocale.length){bestLocale=flatLocales[i];}}}
if(!bestLocale){bestLocale="ROOT";}}
var tempLocale=availableFlatLocales?bestLocale:targetLocale;var bundle=dojo._loadedModules[bundlePackage];var localizedBundle=null;if(bundle){if(dojo.config.localizationComplete&&bundle._built){return;}
var jsLoc=tempLocale.replace(/-/g,'_');var translationPackage=bundlePackage+"."+jsLoc;localizedBundle=dojo._loadedModules[translationPackage];}
if(!localizedBundle){bundle=dojo["provide"](bundlePackage);var syms=dojo._getModuleSymbols(moduleName);var modpath=syms.concat("nls").join("/");var parent;dojo.i18n._searchLocalePath(tempLocale,availableFlatLocales,function(loc){var jsLoc=loc.replace(/-/g,'_');var translationPackage=bundlePackage+"."+jsLoc;var loaded=false;if(!dojo._loadedModules[translationPackage]){dojo["provide"](translationPackage);var module=[modpath];if(loc!="ROOT"){module.push(loc);}
module.push(bundleName);var filespec=module.join("/")+'.js';loaded=dojo._loadPath(filespec,null,function(hash){var clazz=function(){};clazz.prototype=parent;bundle[jsLoc]=new clazz();for(var j in hash){bundle[jsLoc][j]=hash[j];}});}else{loaded=true;}
if(loaded&&bundle[jsLoc]){parent=bundle[jsLoc];}else{bundle[jsLoc]=parent;}
if(availableFlatLocales){return true;}});}
if(availableFlatLocales&&targetLocale!=bestLocale){bundle[targetLocale.replace(/-/g,'_')]=bundle[bestLocale.replace(/-/g,'_')];}};(function(){var extra=dojo.config.extraLocale;if(extra){if(!extra instanceof Array){extra=[extra];}
var req=dojo.i18n._requireLocalization;dojo.i18n._requireLocalization=function(m,b,locale,availableFlatLocales){req(m,b,locale,availableFlatLocales);if(locale){return;}
for(var i=0;i<extra.length;i++){req(m,b,extra[i],availableFlatLocales);}};}})();dojo.i18n._searchLocalePath=function(locale,down,searchFunc){locale=dojo.i18n.normalizeLocale(locale);var elements=locale.split('-');var searchlist=[];for(var i=elements.length;i>0;i--){searchlist.push(elements.slice(0,i).join('-'));}
searchlist.push(false);if(down){searchlist.reverse();}
for(var j=searchlist.length-1;j>=0;j--){var loc=searchlist[j]||"ROOT";var stop=searchFunc(loc);if(stop){break;}}};dojo.i18n._preloadLocalizations=function(bundlePrefix,localesGenerated){function preload(locale){locale=dojo.i18n.normalizeLocale(locale);dojo.i18n._searchLocalePath(locale,true,function(loc){for(var i=0;i<localesGenerated.length;i++){if(localesGenerated[i]==loc){dojo["require"](bundlePrefix+"_"+loc);return true;}}
return false;});}
preload();var extra=dojo.config.extraLocale||[];for(var i=0;i<extra.length;i++){preload(extra[i]);}};}
if(!dojo._hasResource["dijit.layout.ContentPane"]){dojo._hasResource["dijit.layout.ContentPane"]=true;dojo.provide("dijit.layout.ContentPane");dojo.declare("dijit.layout.ContentPane",dijit._Widget,{href:"",extractContent:false,parseOnLoad:true,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",doLayout:true,_isRealContent:true,postMixInProperties:function(){this.inherited(arguments);var messages=dojo.i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=dojo.string.substitute(this.loadingMessage,messages);this.errorMessage=dojo.string.substitute(this.errorMessage,messages);},buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},postCreate:function(){this.domNode.title="";if(!dijit.hasWaiRole(this.domNode)){dijit.setWaiRole(this.domNode,"group");}
dojo.addClass(this.domNode,this.baseClass);},startup:function(){if(this._started){return;}
if(this.doLayout!="false"&&this.doLayout!==false){this._checkIfSingleChild();if(this._singleChild){this._singleChild.startup();}}
this._loadCheck();this.inherited(arguments);},_checkIfSingleChild:function(){var childNodes=dojo.query(">",this.containerNode),childWidgetNodes=childNodes.filter(function(node){return dojo.hasAttr(node,"dojoType")||dojo.hasAttr(node,"widgetId");}),candidateWidgets=dojo.filter(childWidgetNodes.map(dijit.byNode),function(widget){return widget&&widget.domNode&&widget.resize;});if(childNodes.length==childWidgetNodes.length&&candidateWidgets.length==1){this.isContainer=true;this._singleChild=candidateWidgets[0];}else{delete this.isContainer;delete this._singleChild;}},refresh:function(){return this._prepareLoad(true);},setHref:function(href){dojo.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use attr('href', ...) instead.","","2.0");return this.attr("href",href);},_setHrefAttr:function(href){this.href=href;if(this._created){return this._prepareLoad();}},setContent:function(data){dojo.deprecated("dijit.layout.ContentPane.setContent() is deprecated.  Use attr('content', ...) instead.","","2.0");this.attr("content",data);},_setContentAttr:function(data){this.href="";this.cancel();this._setContent(data||"");this._isDownloaded=false;if(this.doLayout!="false"&&this.doLayout!==false){this._checkIfSingleChild();if(this._singleChild&&this._singleChild.resize){this._singleChild.startup();var cb=this._contentBox||dojo.contentBox(this.containerNode);this._singleChild.resize({w:cb.w,h:cb.h});}}},_getContentAttr:function(){return this.containerNode.innerHTML;},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}
delete this._xhrDfd;},destroyRecursive:function(preserveDom){if(this._beingDestroyed){return;}
this._beingDestroyed=true;this.inherited(arguments);},resize:function(size){dojo.marginBox(this.domNode,size);var node=this.containerNode,mb=dojo.mixin(dojo.marginBox(node),size||{});var cb=this._contentBox=dijit.layout.marginBox2contentBox(node,mb);if(this._singleChild&&this._singleChild.resize){this._singleChild.resize({w:cb.w,h:cb.h});}},_prepareLoad:function(forceLoad){this.cancel();this.isLoaded=false;this._loadCheck(forceLoad);},_isShown:function(){if("open"in this){return this.open;}else{var node=this.domNode;return(node.style.display!='none')&&(node.style.visibility!='hidden');}},_loadCheck:function(forceLoad){var displayState=this._isShown();if(this.href&&(forceLoad||(this.preload&&!this.isLoaded&&!this._xhrDfd)||(this.refreshOnShow&&displayState&&!this._xhrDfd)||(!this.isLoaded&&displayState&&!this._xhrDfd))){this._downloadExternalContent();}},_downloadExternalContent:function(){this._setContent(this.onDownloadStart(),true);var self=this;var getArgs={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(dojo.isObject(this.ioArgs)){dojo.mixin(getArgs,this.ioArgs);}
var hand=this._xhrDfd=(this.ioMethod||dojo.xhrGet)(getArgs);hand.addCallback(function(html){try{self._isDownloaded=true;self._setContent(html,false);self.onDownloadEnd();}catch(err){self._onError('Content',err);}
delete self._xhrDfd;return html;});hand.addErrback(function(err){if(!hand.cancelled){self._onError('Download',err);}
delete self._xhrDfd;return err;});},_onLoadHandler:function(data){this.isLoaded=true;try{this.onLoad(data);}catch(e){console.error('Error '+this.widgetId+' running custom onLoad code');}},_onUnloadHandler:function(){this.isLoaded=false;try{this.onUnload();}catch(e){console.error('Error '+this.widgetId+' running custom onUnload code');}},destroyDescendants:function(){if(this._isRealContent){this._onUnloadHandler();}
var setter=this._contentSetter;if(setter){setter.empty();}else{this.inherited(arguments);dojo.html._emptyNode(this.containerNode);}},_setContent:function(cont,isFakeContent){this.destroyDescendants();this._isRealContent=!isFakeContent;var setter=this._contentSetter;if(!(setter&&setter instanceof dojo.html._ContentSetter)){setter=this._contentSetter=new dojo.html._ContentSetter({node:this.containerNode,_onError:dojo.hitch(this,this._onError),onContentError:dojo.hitch(this,function(e){var errMess=this.onContentError(e);try{this.containerNode.innerHTML=errMess;}catch(e){console.error('Fatal '+this.id+' could not change content due to '+e.message,e);}})});};var setterParams=dojo.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:this.parseOnLoad},this._contentSetterParams||{});dojo.mixin(setter,setterParams);setter.set((dojo.isObject(cont)&&cont.domNode)?cont.domNode:cont);delete this._contentSetterParams;if(!isFakeContent){this._onLoadHandler(cont);}},_onError:function(type,err,consoleText){var errText=this['on'+type+'Error'].call(this,err);if(consoleText){console.error(consoleText,err);}else if(errText){this._setContent(errText,true);}},_createSubWidgets:function(){try{dojo.parser.parse(this.containerNode,true);}catch(e){this._onError('Content',e,"Couldn't create widgets in "+this.id
+(this.href?" from "+this.href:""));}},onLoad:function(data){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(error){},onDownloadError:function(error){return this.errorMessage;},onDownloadEnd:function(){}});}
if(!dojo._hasResource["dijit._Templated"]){dojo._hasResource["dijit._Templated"]=true;dojo.provide("dijit._Templated");dojo.declare("dijit._Templated",null,{templateNode:null,templateString:null,templatePath:null,widgetsInTemplate:false,_skipNodeCache:false,_stringRepl:function(tmpl){var className=this.declaredClass,_this=this;return dojo.string.substitute(tmpl,this,function(value,key){if(key.charAt(0)=='!'){value=_this[key.substr(1)];}
if(typeof value=="undefined"){throw new Error(className+" template:"+key);}
if(value==null){return"";}
return key.charAt(0)=="!"?value:value.toString().replace(/"/g,"&quot;");},this);},buildRendering:function(){var cached=dijit._Templated.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache);var node;if(dojo.isString(cached)){node=dijit._Templated._createNodesFromText(this._stringRepl(cached))[0];}else{node=cached.cloneNode(true);}
this.domNode=node;this._attachTemplateNodes(node);var source=this.srcNodeRef;if(source&&source.parentNode){source.parentNode.replaceChild(node,source);}
if(this.widgetsInTemplate){var cw=(this._supportingWidgets=dojo.parser.parse(node));this._attachTemplateNodes(cw,function(n,p){return n[p];});}
this._fillContent(source);},_fillContent:function(source){var dest=this.containerNode;if(source&&dest){while(source.hasChildNodes()){dest.appendChild(source.firstChild);}}},_attachTemplateNodes:function(rootNode,getAttrFunc){getAttrFunc=getAttrFunc||function(n,p){return n.getAttribute(p);};var nodes=dojo.isArray(rootNode)?rootNode:(rootNode.all||rootNode.getElementsByTagName("*"));var x=dojo.isArray(rootNode)?0:-1;var attrs={};for(;x<nodes.length;x++){var baseNode=(x==-1)?rootNode:nodes[x];if(this.widgetsInTemplate&&getAttrFunc(baseNode,"dojoType")){continue;}
var attachPoint=getAttrFunc(baseNode,"dojoAttachPoint");if(attachPoint){var point,points=attachPoint.split(/\s*,\s*/);while((point=points.shift())){if(dojo.isArray(this[point])){this[point].push(baseNode);}else{this[point]=baseNode;}}}
var attachEvent=getAttrFunc(baseNode,"dojoAttachEvent");if(attachEvent){var event,events=attachEvent.split(/\s*,\s*/);var trim=dojo.trim;while((event=events.shift())){if(event){var thisFunc=null;if(event.indexOf(":")!=-1){var funcNameArr=event.split(":");event=trim(funcNameArr[0]);thisFunc=trim(funcNameArr[1]);}else{event=trim(event);}
if(!thisFunc){thisFunc=event;}
this.connect(baseNode,event,thisFunc);}}}
var role=getAttrFunc(baseNode,"waiRole");if(role){dijit.setWaiRole(baseNode,role);}
var values=getAttrFunc(baseNode,"waiState");if(values){dojo.forEach(values.split(/\s*,\s*/),function(stateValue){if(stateValue.indexOf('-')!=-1){var pair=stateValue.split('-');dijit.setWaiState(baseNode,pair[0],pair[1]);}});}}}});dijit._Templated._templateCache={};dijit._Templated.getCachedTemplate=function(templatePath,templateString,alwaysUseString){var tmplts=dijit._Templated._templateCache;var key=templateString||templatePath;var cached=tmplts[key];if(cached){if(!cached.ownerDocument||cached.ownerDocument==dojo.doc){return cached;}
dojo._destroyElement(cached);}
if(!templateString){templateString=dijit._Templated._sanitizeTemplateString(dojo._getText(templatePath));}
templateString=dojo.string.trim(templateString);if(alwaysUseString||templateString.match(/\$\{([^\}]+)\}/g)){return(tmplts[key]=templateString);}else{return(tmplts[key]=dijit._Templated._createNodesFromText(templateString)[0]);}};dijit._Templated._sanitizeTemplateString=function(tString){if(tString){tString=tString.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var matches=tString.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(matches){tString=matches[1];}}else{tString="";}
return tString;};if(dojo.isIE){dojo.addOnWindowUnload(function(){var cache=dijit._Templated._templateCache;for(var key in cache){var value=cache[key];if(!isNaN(value.nodeType)){dojo._destroyElement(value);}
delete cache[key];}});}
(function(){var tagMap={cell:{re:/^<t[dh][\s\r\n>]/i,pre:"<table><tbody><tr>",post:"</tr></tbody></table>"},row:{re:/^<tr[\s\r\n>]/i,pre:"<table><tbody>",post:"</tbody></table>"},section:{re:/^<(thead|tbody|tfoot)[\s\r\n>]/i,pre:"<table>",post:"</table>"}};var tn;dijit._Templated._createNodesFromText=function(text){if(tn&&tn.ownerDocument!=dojo.doc){dojo._destroyElement(tn);tn=undefined;}
if(!tn){tn=dojo.doc.createElement("div");tn.style.display="none";dojo.body().appendChild(tn);}
var tableType="none";var rtext=text.replace(/^\s+/,"");for(var type in tagMap){var map=tagMap[type];if(map.re.test(rtext)){tableType=type;text=map.pre+text+map.post;break;}}
tn.innerHTML=text;if(tn.normalize){tn.normalize();}
var tag={cell:"tr",row:"tbody",section:"table"}[tableType];var _parent=(typeof tag!="undefined")?tn.getElementsByTagName(tag)[0]:tn;var nodes=[];while(_parent.firstChild){nodes.push(_parent.removeChild(_parent.firstChild));}
tn.innerHTML="";return nodes;}})();dojo.extend(dijit._Widget,{dojoAttachEvent:"",dojoAttachPoint:"",waiRole:"",waiState:""})}
if(!dojo._hasResource["dijit.form._FormWidget"]){dojo._hasResource["dijit.form._FormWidget"]=true;dojo.provide("dijit.form._FormWidget");dojo.declare("dijit.form._FormWidget",[dijit._Widget,dijit._Templated],{baseClass:"",name:"",alt:"",value:"",type:"text",tabIndex:"0",disabled:false,readOnly:false,intermediateChanges:false,attributeMap:dojo.mixin(dojo.clone(dijit._Widget.prototype.attributeMap),{value:"focusNode",disabled:"focusNode",readOnly:"focusNode",id:"focusNode",tabIndex:"focusNode",alt:"focusNode"}),_setDisabledAttr:function(value){this.disabled=value;dojo.attr(this.focusNode,'disabled',value);dijit.setWaiState(this.focusNode,"disabled",value);if(value){this._hovering=false;this._active=false;this.focusNode.removeAttribute('tabIndex');}else{this.focusNode.setAttribute('tabIndex',this.tabIndex);}
this._setStateClass();},setDisabled:function(disabled){dojo.deprecated("setDisabled("+disabled+") is deprecated. Use attr('disabled',"+disabled+") instead.","","2.0");this.attr('disabled',disabled);},_scroll:true,_onFocus:function(e){if(this._scroll){dijit.scrollIntoView(this.domNode);}
this.inherited(arguments);},_onMouse:function(event){var mouseNode=event.currentTarget;if(mouseNode&&mouseNode.getAttribute){this.stateModifier=mouseNode.getAttribute("stateModifier")||"";}
if(!this.disabled){switch(event.type){case"mouseenter":case"mouseover":this._hovering=true;this._active=this._mouseDown;break;case"mouseout":case"mouseleave":this._hovering=false;this._active=false;break;case"mousedown":this._active=true;this._mouseDown=true;var mouseUpConnector=this.connect(dojo.body(),"onmouseup",function(){if(this._mouseDown&&this.isFocusable()){this.focus();}
this._active=false;this._mouseDown=false;this._setStateClass();this.disconnect(mouseUpConnector);});break;}
this._setStateClass();}},isFocusable:function(){return!this.disabled&&!this.readOnly&&this.focusNode&&(dojo.style(this.domNode,"display")!="none");},focus:function(){dijit.focus(this.focusNode);},_setStateClass:function(){var newStateClasses=this.baseClass.split(" ");function multiply(modifier){newStateClasses=newStateClasses.concat(dojo.map(newStateClasses,function(c){return c+modifier;}),"dijit"+modifier);}
if(this.checked){multiply("Checked");}
if(this.state){multiply(this.state);}
if(this.selected){multiply("Selected");}
if(this.disabled){multiply("Disabled");}else if(this.readOnly){multiply("ReadOnly");}else if(this._active){multiply(this.stateModifier+"Active");}else{if(this._focused){multiply("Focused");}
if(this._hovering){multiply(this.stateModifier+"Hover");}}
var tn=this.stateNode||this.domNode,classHash={};dojo.forEach(tn.className.split(" "),function(c){classHash[c]=true;});if("_stateClasses"in this){dojo.forEach(this._stateClasses,function(c){delete classHash[c];});}
dojo.forEach(newStateClasses,function(c){classHash[c]=true;});var newClasses=[];for(var c in classHash){newClasses.push(c);}
tn.className=newClasses.join(" ");this._stateClasses=newStateClasses;},compare:function(val1,val2){if((typeof val1=="number")&&(typeof val2=="number")){return(isNaN(val1)&&isNaN(val2))?0:(val1-val2);}else if(val1>val2){return 1;}
else if(val1<val2){return-1;}
else{return 0;}},onChange:function(newValue){},_onChangeActive:false,_handleOnChange:function(newValue,priorityChange){this._lastValue=newValue;if(this._lastValueReported==undefined&&(priorityChange===null||!this._onChangeActive)){this._resetValue=this._lastValueReported=newValue;}
if((this.intermediateChanges||priorityChange||priorityChange===undefined)&&((typeof newValue!=typeof this._lastValueReported)||this.compare(newValue,this._lastValueReported)!=0)){this._lastValueReported=newValue;if(this._onChangeActive){this.onChange(newValue);}}},create:function(){this.inherited(arguments);this._onChangeActive=true;this._setStateClass();},destroy:function(){if(this._layoutHackHandle){clearTimeout(this._layoutHackHandle);}
this.inherited(arguments);},setValue:function(value){dojo.deprecated("dijit.form._FormWidget:setValue("+value+") is deprecated.  Use attr('value',"+value+") instead.","","2.0");this.attr('value',value);},getValue:function(){dojo.deprecated(this.declaredClass+"::getValue() is deprecated. Use attr('value') instead.","","2.0");return this.attr('value');},_layoutHack:function(){if(dojo.isFF==2&&!this._layoutHackHandle){var node=this.domNode;var old=node.style.opacity;node.style.opacity="0.999";this._layoutHackHandle=setTimeout(dojo.hitch(this,function(){this._layoutHackHandle=null;node.style.opacity=old;}),0);}}});dojo.declare("dijit.form._FormValueWidget",dijit.form._FormWidget,{attributeMap:dojo.mixin(dojo.clone(dijit.form._FormWidget.prototype.attributeMap),{value:""}),postCreate:function(){if(dojo.isIE||dojo.isSafari){this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown);}
if(this._resetValue===undefined){this._resetValue=this.value;}},_setValueAttr:function(newValue,priorityChange){this.value=newValue;this._handleOnChange(newValue,priorityChange);},_getValueAttr:function(value){return this._lastValue;},undo:function(){this._setValueAttr(this._lastValueReported,false);},reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true);},_valueChanged:function(){var v=this.attr('value');var lv=this._lastValueReported;return((v!==null&&(v!==undefined)&&v.toString)?v.toString():'')!==((lv!==null&&(lv!==undefined)&&lv.toString)?lv.toString():'');},_onKeyDown:function(e){if(e.keyCode==dojo.keys.ESCAPE&&!e.ctrlKey&&!e.altKey){var te;if(dojo.isIE){e.preventDefault();te=document.createEventObject();te.keyCode=dojo.keys.ESCAPE;te.shiftKey=e.shiftKey;e.srcElement.fireEvent('onkeypress',te);}else if(dojo.isSafari){te=document.createEvent('Events');te.initEvent('keypress',true,true);te.keyCode=dojo.keys.ESCAPE;te.shiftKey=e.shiftKey;e.target.dispatchEvent(te);}}},_onKeyPress:function(e){if(e.charOrCode==dojo.keys.ESCAPE&&!e.ctrlKey&&!e.altKey&&this._valueChanged()){this.undo();dojo.stopEvent(e);return false;}else if(this.intermediateChanges){var _this=this;setTimeout(function(){_this._handleOnChange(_this.attr('value'),false);},0);}
return true;}});}
if(!dojo._hasResource["dijit.form.Button"]){dojo._hasResource["dijit.form.Button"]=true;dojo.provide("dijit.form.Button");dojo.declare("dijit.form.Button",dijit.form._FormWidget,{label:"",showLabel:true,iconClass:"",type:"button",baseClass:"dijitButton",templateString:"<span class=\"dijit dijitReset dijitLeft dijitInline\"\n\tdojoAttachEvent=\"ondijitclick:_onButtonClick,onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"\n\t><span class=\"dijitReset dijitRight dijitInline\"\n\t\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\t\t><button class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\t\tdojoAttachPoint=\"titleNode,focusNode\" \n\t\t\t\tname=\"${name}\" type=\"${type}\" waiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t\t><span class=\"dijitReset dijitInline\" dojoAttachPoint=\"iconNode\" \n\t\t\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#10003;</span \n\t\t\t\t></span \n\t\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" \n\t\t\t\t\tid=\"${id}_label\"  \n\t\t\t\t\tdojoAttachPoint=\"containerNode\"\n\t\t\t\t></span\n\t\t\t></button\n\t\t></span\n\t></span\n></span>\n",attributeMap:dojo.mixin(dojo.clone(dijit.form._FormWidget.prototype.attributeMap),{label:{node:"containerNode",type:"innerHTML"},iconClass:{node:"iconNode",type:"class"}}),_onClick:function(e){if(this.disabled||this.readOnly){return false;}
this._clicked();return this.onClick(e);},_onButtonClick:function(e){if(e.type!='click'){dojo.stopEvent(e);}
if(this._onClick(e)===false){e.preventDefault();}else if(this.type=="submit"&&!this.focusNode.form){for(var node=this.domNode;node.parentNode;node=node.parentNode){var widget=dijit.byNode(node);if(widget&&typeof widget._onSubmit=="function"){widget._onSubmit(e);break;}}}},_fillContent:function(source){if(source&&!("label"in this.params)){this.attr('label',source.innerHTML);}},postCreate:function(){if(this.showLabel==false){dojo.addClass(this.containerNode,"dijitDisplayNone");}
dojo.setSelectable(this.focusNode,false);this.inherited(arguments);},onClick:function(e){return true;},_clicked:function(e){},setLabel:function(content){dojo.deprecated("dijit.form.Button.setLabel() is deprecated.  Use attr('label', ...) instead.","","2.0");this.attr("label",content);},_setLabelAttr:function(content){this.containerNode.innerHTML=this.label=content;this._layoutHack();if(this.showLabel==false&&!this.params.title){this.titleNode.title=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||'');}}});dojo.declare("dijit.form.DropDownButton",[dijit.form.Button,dijit._Container],{baseClass:"dijitDropDownButton",templateString:"<span class=\"dijit dijitReset dijitLeft dijitInline\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse,onclick:_onDropDownClick,onkeydown:_onDropDownKeydown,onblur:_onDropDownBlur,onkeypress:_onKey\"\n\t><span class='dijitReset dijitRight dijitInline'\n\t\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\t\t><button class=\"dijitReset dijitStretch dijitButtonContents\" \n\t\t\t\ttype=\"${type}\" name=\"${name}\"\n\t\t\t\tdojoAttachPoint=\"focusNode,titleNode\" \n\t\t\t\twaiRole=\"button\" waiState=\"haspopup-true,labelledby-${id}_label\"\n\t\t\t\t><span class=\"dijitReset dijitInline\" \n\t\t\t\t\tdojoAttachPoint=\"iconNode\"\n\t\t\t\t></span\n\t\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"  \n\t\t\t\t\tdojoAttachPoint=\"containerNode,popupStateNode\" \n\t\t\t\t\tid=\"${id}_label\"\n\t\t\t\t></span\n\t\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\">&thinsp;</span\n\t\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">&#9660;</span\n\t\t\t></button\n\t\t></span\n\t></span\n></span>\n",_fillContent:function(){if(this.srcNodeRef){var nodes=dojo.query("*",this.srcNodeRef);dijit.form.DropDownButton.superclass._fillContent.call(this,nodes[0]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}
if(!this.dropDown){var dropDownNode=dojo.query("[widgetId]",this.dropDownContainer)[0];this.dropDown=dijit.byNode(dropDownNode);delete this.dropDownContainer;}
dijit.popup.prepare(this.dropDown.domNode);this.inherited(arguments);},destroyDescendants:function(){if(this.dropDown){this.dropDown.destroyRecursive();delete this.dropDown;}
this.inherited(arguments);},_onArrowClick:function(e){if(this.disabled||this.readOnly){return;}
this._toggleDropDown();},_onDropDownClick:function(e){var isMacFFlessThan3=dojo.isFF&&dojo.isFF<3&&navigator.appVersion.indexOf("Macintosh")!=-1;if(!isMacFFlessThan3||e.detail!=0||this._seenKeydown){this._onArrowClick(e);}
this._seenKeydown=false;},_onDropDownKeydown:function(e){this._seenKeydown=true;},_onDropDownBlur:function(e){this._seenKeydown=false;},_onKey:function(e){if(this.disabled||this.readOnly){return;}
if(e.charOrCode==dojo.keys.DOWN_ARROW){if(!this.dropDown||this.dropDown.domNode.style.visibility=="hidden"){dojo.stopEvent(e);this._toggleDropDown();}}},_onBlur:function(){this._closeDropDown();this.inherited(arguments);},_toggleDropDown:function(){if(this.disabled||this.readOnly){return;}
dijit.focus(this.popupStateNode);var dropDown=this.dropDown;if(!dropDown){return;}
if(!this._opened){if(dropDown.href&&!dropDown.isLoaded){var self=this;var handler=dojo.connect(dropDown,"onLoad",function(){dojo.disconnect(handler);self._openDropDown();});dropDown._loadCheck(true);return;}else{this._openDropDown();}}else{this._closeDropDown();}},_openDropDown:function(){var dropDown=this.dropDown;var oldWidth=dropDown.domNode.style.width;var self=this;dijit.popup.open({parent:this,popup:dropDown,around:this.domNode,orient:this.isLeftToRight()?{'BL':'TL','BR':'TR','TL':'BL','TR':'BR'}:{'BR':'TR','BL':'TL','TR':'BR','TL':'BL'},onExecute:function(){self._closeDropDown(true);},onCancel:function(){self._closeDropDown(true);},onClose:function(){dropDown.domNode.style.width=oldWidth;self.popupStateNode.removeAttribute("popupActive");self._opened=false;}});if(this.domNode.offsetWidth>dropDown.domNode.offsetWidth){var adjustNode=null;if(!this.isLeftToRight()){adjustNode=dropDown.domNode.parentNode;var oldRight=adjustNode.offsetLeft+adjustNode.offsetWidth;}
dojo.marginBox(dropDown.domNode,{w:this.domNode.offsetWidth});if(adjustNode){adjustNode.style.left=oldRight-this.domNode.offsetWidth+"px";}}
this.popupStateNode.setAttribute("popupActive","true");this._opened=true;if(dropDown.focus){dropDown.focus();}},_closeDropDown:function(focus){if(this._opened){dijit.popup.close(this.dropDown);if(focus){this.focus();}
this._opened=false;}}});dojo.declare("dijit.form.ComboButton",dijit.form.DropDownButton,{templateString:"<table class='dijit dijitReset dijitInline dijitLeft'\n\tcellspacing='0' cellpadding='0' waiRole=\"presentation\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\"\n\t\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick,onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"  dojoAttachPoint=\"titleNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline\" dojoAttachPoint=\"iconNode\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" waiRole=\"presentation\"></div\n\t\t></td\n\t\t><td class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton'\n\t\t\tdojoAttachPoint=\"popupStateNode,focusNode\"\n\t\t\tdojoAttachEvent=\"ondijitclick:_onArrowClick, onkeypress:_onKey,onmouseenter:_onMouse,onmouseleave:_onMouse\"\n\t\t\tstateModifier=\"DownArrow\"\n\t\t\ttitle=\"${optionsTitle}\" name=\"${name}\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\">&thinsp;</div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">&#9660;</div\n\t\t></td\n\t></tr></tbody\n></table>\n",attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{id:"",name:"",tabIndex:["focusNode","titleNode"]}),optionsTitle:"",baseClass:"dijitComboButton",_focusedNode:null,postCreate:function(){this.inherited(arguments);this._focalNodes=[this.titleNode,this.popupStateNode];dojo.forEach(this._focalNodes,dojo.hitch(this,function(node){if(dojo.isIE){this.connect(node,"onactivate",this._onNodeFocus);this.connect(node,"ondeactivate",this._onNodeBlur);}else{this.connect(node,"onfocus",this._onNodeFocus);this.connect(node,"onblur",this._onNodeBlur);}}));},focusFocalNode:function(node){this._focusedNode=node;dijit.focus(node);},hasNextFocalNode:function(){return this._focusedNode!==this.getFocalNodes()[1];},focusNext:function(){this._focusedNode=this.getFocalNodes()[this._focusedNode?1:0];dijit.focus(this._focusedNode);},hasPrevFocalNode:function(){return this._focusedNode!==this.getFocalNodes()[0];},focusPrev:function(){this._focusedNode=this.getFocalNodes()[this._focusedNode?0:1];dijit.focus(this._focusedNode);},getFocalNodes:function(){return this._focalNodes;},_onNodeFocus:function(evt){this._focusedNode=evt.currentTarget;var fnc=this._focusedNode==this.focusNode?"dijitDownArrowButtonFocused":"dijitButtonContentsFocused";dojo.addClass(this._focusedNode,fnc);},_onNodeBlur:function(evt){var fnc=evt.currentTarget==this.focusNode?"dijitDownArrowButtonFocused":"dijitButtonContentsFocused";dojo.removeClass(evt.currentTarget,fnc);},_onBlur:function(){this.inherited(arguments);this._focusedNode=null;}});dojo.declare("dijit.form.ToggleButton",dijit.form.Button,{baseClass:"dijitToggleButton",checked:false,attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{checked:"focusNode"}),_clicked:function(evt){this.attr('checked',!this.checked);},_setCheckedAttr:function(value){this.checked=value;dojo.attr(this.focusNode||this.domNode,"checked",value);dijit.setWaiState(this.focusNode||this.domNode,"pressed",value);this._setStateClass();this._handleOnChange(value,true);},setChecked:function(checked){dojo.deprecated("setChecked("+checked+") is deprecated. Use attr('checked',"+checked+") instead.","","2.0");this.attr('checked',checked);},reset:function(){this._hasBeenBlurred=false;this.attr('checked',this.params.checked||false);}});}
if(!dojo._hasResource["dijit.Menu"]){dojo._hasResource["dijit.Menu"]=true;dojo.provide("dijit.Menu");dojo.declare("dijit.Menu",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{constructor:function(){this._bindings=[];},templateString:'<table class="dijit dijitMenu dijitReset dijitMenuTable" waiRole="menu" dojoAttachEvent="onkeypress:_onKeyPress">'+'<tbody class="dijitReset" dojoAttachPoint="containerNode"></tbody>'+'</table>',targetNodeIds:[],contextMenuForWindow:false,leftClickToOpen:false,parentMenu:null,popupDelay:500,_contextMenuWithMouse:false,postCreate:function(){if(this.contextMenuForWindow){this.bindDomNode(dojo.body());}else{dojo.forEach(this.targetNodeIds,this.bindDomNode,this);}
this.connectKeyNavHandlers([dojo.keys.UP_ARROW],[dojo.keys.DOWN_ARROW]);},startup:function(){if(this._started){return;}
dojo.forEach(this.getChildren(),function(child){child.startup();});this.startupKeyNavChildren();this.inherited(arguments);},onExecute:function(){},onCancel:function(closeAll){},_moveToPopup:function(evt){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.focusedChild._onClick(evt);}},_onKeyPress:function(evt){if(evt.ctrlKey||evt.altKey){return;}
switch(evt.charOrCode){case dojo.keys.RIGHT_ARROW:this._moveToPopup(evt);dojo.stopEvent(evt);break;case dojo.keys.LEFT_ARROW:if(this.parentMenu){this.onCancel(false);}else{dojo.stopEvent(evt);}
break;}},onItemHover:function(item){this.focusChild(item);if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){this.hover_timer=setTimeout(dojo.hitch(this,"_openPopup"),this.popupDelay);}},_onChildBlur:function(item){dijit.popup.close(item.popup);item._blur();this._stopPopupTimer();},onItemUnhover:function(item){},_stopPopupTimer:function(){if(this.hover_timer){clearTimeout(this.hover_timer);this.hover_timer=null;}},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu);return top;},onItemClick:function(item,evt){if(item.disabled){return false;}
if(item.popup){if(!this.is_open){this._openPopup();}}else{this.onExecute();item.onClick(evt);}},_iframeContentWindow:function(iframe_el){var win=dijit.getDocumentWindow(dijit.Menu._iframeContentDocument(iframe_el))||dijit.Menu._iframeContentDocument(iframe_el)['__parent__']||(iframe_el.name&&dojo.doc.frames[iframe_el.name])||null;return win;},_iframeContentDocument:function(iframe_el){var doc=iframe_el.contentDocument||(iframe_el.contentWindow&&iframe_el.contentWindow.document)||(iframe_el.name&&dojo.doc.frames[iframe_el.name]&&dojo.doc.frames[iframe_el.name].document)||null;return doc;},bindDomNode:function(node){node=dojo.byId(node);var win=dijit.getDocumentWindow(node.ownerDocument);if(node.tagName.toLowerCase()=="iframe"){win=this._iframeContentWindow(node);node=dojo.withGlobal(win,dojo.body);}
var cn=(node==dojo.body()?dojo.doc:node);node[this.id]=this._bindings.push([dojo.connect(cn,(this.leftClickToOpen)?"onclick":"oncontextmenu",this,"_openMyself"),dojo.connect(cn,"onkeydown",this,"_contextKey"),dojo.connect(cn,"onmousedown",this,"_contextMouse")]);},unBindDomNode:function(nodeName){var node=dojo.byId(nodeName);if(node){var bid=node[this.id]-1,b=this._bindings[bid];dojo.forEach(b,dojo.disconnect);delete this._bindings[bid];}},_contextKey:function(e){this._contextMenuWithMouse=false;if(e.keyCode==dojo.keys.F10){dojo.stopEvent(e);if(e.shiftKey&&e.type=="keydown"){var _e={target:e.target,pageX:e.pageX,pageY:e.pageY};_e.preventDefault=_e.stopPropagation=function(){};window.setTimeout(dojo.hitch(this,function(){this._openMyself(_e);}),1);}}},_contextMouse:function(e){this._contextMenuWithMouse=true;},_openMyself:function(e){if(this.leftClickToOpen&&e.button>0){return;}
dojo.stopEvent(e);var x,y;if(dojo.isSafari||this._contextMenuWithMouse){x=e.pageX;y=e.pageY;}else{var coords=dojo.coords(e.target,true);x=coords.x+10;y=coords.y+10;}
var self=this;var savedFocus=dijit.getFocus(this);function closeAndRestoreFocus(){dijit.focus(savedFocus);dijit.popup.close(self);}
dijit.popup.open({popup:this,x:x,y:y,onExecute:closeAndRestoreFocus,onCancel:closeAndRestoreFocus,orient:this.isLeftToRight()?'L':'R'});this.focus();this._onBlur=function(){this.inherited('_onBlur',arguments);dijit.popup.close(this);}},onOpen:function(e){this.isShowingNow=true;},onClose:function(){this._stopPopupTimer();this.parentMenu=null;this.isShowingNow=false;this.currentPopup=null;if(this.focusedChild){this._onChildBlur(this.focusedChild);this.focusedChild=null;}},_openPopup:function(){this._stopPopupTimer();var from_item=this.focusedChild;var popup=from_item.popup;if(popup.isShowingNow){return;}
popup.parentMenu=this;var self=this;dijit.popup.open({parent:this,popup:popup,around:from_item.domNode,orient:this.isLeftToRight()?{'TR':'TL','TL':'TR'}:{'TL':'TR','TR':'TL'},onCancel:function(){dijit.popup.close(popup);from_item.focus();self.currentPopup=null;}});this.currentPopup=popup;if(popup.focus){popup.focus();}},uninitialize:function(){dojo.forEach(this.targetNodeIds,this.unBindDomNode,this);this.inherited(arguments);}});dojo.declare("dijit.MenuItem",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:'<tr class="dijitReset dijitMenuItem" dojoAttachPoint="focusNode" waiRole="menuitem" tabIndex="-1"'
+'dojoAttachEvent="onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick">'
+'<td class="dijitReset" waiRole="presentation"><div class="dijitMenuItemIcon" dojoAttachPoint="iconNode"></div></td>'
+'<td class="dijitReset dijitMenuItemLabel" dojoAttachPoint="containerNode"></td>'
+'<td class="dijitReset dijitMenuArrowCell" waiRole="presentation">'
+'<div dojoAttachPoint="arrowWrapper" style="display: none">'
+'<div class="dijitMenuExpand"></div>'
+'<span class="dijitMenuExpandA11y">+</span>'
+'</div>'
+'</td>'
+'</tr>',attributeMap:dojo.mixin(dojo.clone(dijit._Widget.prototype.attributeMap),{label:{node:"containerNode",type:"innerHTML"},iconClass:{node:"iconNode",type:"class"}}),label:'',iconClass:"",disabled:false,_fillContent:function(source){if(source&&!("label"in this.params)){this.attr('label',source.innerHTML);}},postCreate:function(){dojo.setSelectable(this.domNode,false);dojo.attr(this.containerNode,"id",this.id+"_text");dijit.setWaiState(this.domNode,"labelledby",this.id+"_text");},_onHover:function(){this.getParent().onItemHover(this);},_onUnhover:function(){this.getParent().onItemUnhover(this);},_onClick:function(evt){this.getParent().onItemClick(this,evt);dojo.stopEvent(evt);},onClick:function(evt){},focus:function(){dojo.addClass(this.domNode,'dijitMenuItemHover');try{dijit.focus(this.focusNode);}catch(e){}},_blur:function(){dojo.removeClass(this.domNode,'dijitMenuItemHover');},setLabel:function(content){dojo.deprecated("dijit.MenuItem.setLabel() is deprecated.  Use attr('label', ...) instead.","","2.0");this.attr("label",content);},setDisabled:function(disabled){dojo.deprecated("dijit.Menu.setDisabled() is deprecated.  Use attr('disabled', bool) instead.","","2.0");this.attr('disabled',disabled);},_setDisabledAttr:function(value){this.disabled=value;dojo[value?"addClass":"removeClass"](this.domNode,'dijitMenuItemDisabled');dijit.setWaiState(this.focusNode,'disabled',value?'true':'false');}});dojo.declare("dijit.PopupMenuItem",dijit.MenuItem,{_fillContent:function(){if(this.srcNodeRef){var nodes=dojo.query("*",this.srcNodeRef);dijit.PopupMenuItem.superclass._fillContent.call(this,nodes[0]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}
this.inherited(arguments);if(!this.popup){var node=dojo.query("[widgetId]",this.dropDownContainer)[0];this.popup=dijit.byNode(node);}
dojo.body().appendChild(this.popup.domNode);this.popup.domNode.style.display="none";dojo.style(this.arrowWrapper,"display","");dijit.setWaiState(this.focusNode,"haspopup","true");},destroyDescendants:function(){if(this.popup){this.popup.destroyRecursive();delete this.popup;}
this.inherited(arguments);}});dojo.declare("dijit.MenuSeparator",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:'<tr class="dijitMenuSeparator"><td colspan=3>'
+'<div class="dijitMenuSeparatorTop"></div>'
+'<div class="dijitMenuSeparatorBottom"></div>'
+'</td></tr>',postCreate:function(){dojo.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});dojo.declare("dijit.CheckedMenuItem",dijit.MenuItem,{templateString:'<tr class="dijitReset dijitMenuItem" dojoAttachPoint="focusNode" waiRole="menuitemcheckbox" tabIndex="-1"'
+'dojoAttachEvent="onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick">'
+'<td class="dijitReset" waiRole="presentation"><div class="dijitMenuItemIcon dijitCheckedMenuItemIcon" dojoAttachPoint="iconNode">'
+'<div class="dijitCheckedMenuItemIconChar">&#10003;</div>'
+'</div></td>'
+'<td class="dijitReset dijitMenuItemLabel" dojoAttachPoint="containerNode,labelNode"></td>'
+'<td class="dijitReset dijitMenuArrowCell" waiRole="presentation">'
+'<div dojoAttachPoint="arrowWrapper" style="display: none">'
+'<div class="dijitMenuExpand"></div>'
+'<span class="dijitMenuExpandA11y">+</span>'
+'</div>'
+'</td>'
+'</tr>',checked:false,_setCheckedAttr:function(checked){dojo.toggleClass(this.iconNode,"dijitCheckedMenuItemIconChecked",checked);dijit.setWaiState(this.domNode,"checked",checked);this.checked=checked;},onChange:function(checked){},_onClick:function(e){if(!this.disabled){this.attr("checked",!this.checked);this.onChange(this.checked);}
this.inherited(arguments);}});}
if(!dojo._hasResource["dijit.layout.StackContainer"]){dojo._hasResource["dijit.layout.StackContainer"]=true;dojo.provide("dijit.layout.StackContainer");dojo.declare("dijit.layout.StackContainer",dijit.layout._LayoutWidget,{doLayout:true,baseClass:"dijitStackContainer",_started:false,postCreate:function(){this.inherited(arguments);dijit.setWaiRole(this.containerNode,"tabpanel");this.connect(this.domNode,"onkeypress",this._onKeyPress);},startup:function(){if(this._started){return;}
var children=this.getChildren();dojo.forEach(children,this._setupChild,this);dojo.some(children,function(child){if(child.selected){this.selectedChildWidget=child;}
return child.selected;},this);var selected=this.selectedChildWidget;if(!selected&&children[0]){selected=this.selectedChildWidget=children[0];selected.selected=true;}
if(selected){this._showChild(selected);}
dojo.publish(this.id+"-startup",[{children:children,selected:selected}]);this.inherited(arguments);},_setupChild:function(child){this.inherited(arguments);child.domNode.style.display="none";child.domNode.style.position="relative";child.domNode.title="";return child;},addChild:function(child,insertIndex){this.inherited(arguments);if(this._started){dojo.publish(this.id+"-addChild",[child,insertIndex]);this.layout();if(!this.selectedChildWidget){this.selectChild(child);}}},removeChild:function(page){this.inherited(arguments);if(this._beingDestroyed){return;}
if(this._started){dojo.publish(this.id+"-removeChild",[page]);this.layout();}
if(this.selectedChildWidget===page){this.selectedChildWidget=undefined;if(this._started){var children=this.getChildren();if(children.length){this.selectChild(children[0]);}}}},selectChild:function(page){page=dijit.byId(page);if(this.selectedChildWidget!=page){this._transition(page,this.selectedChildWidget);this.selectedChildWidget=page;dojo.publish(this.id+"-selectChild",[page]);}},_transition:function(newWidget,oldWidget){if(oldWidget){this._hideChild(oldWidget);}
this._showChild(newWidget);if(this.doLayout&&newWidget.resize){newWidget.resize(this._containerContentBox||this._contentBox);}},_adjacent:function(forward){var children=this.getChildren();var index=dojo.indexOf(children,this.selectedChildWidget);index+=forward?1:children.length-1;return children[index%children.length];},forward:function(){this.selectChild(this._adjacent(true));},back:function(){this.selectChild(this._adjacent(false));},_onKeyPress:function(e){dojo.publish(this.id+"-containerKeyPress",[{e:e,page:this}]);},layout:function(){if(this.doLayout&&this.selectedChildWidget&&this.selectedChildWidget.resize){this.selectedChildWidget.resize(this._contentBox);}},_showChild:function(page){var children=this.getChildren();page.isFirstChild=(page==children[0]);page.isLastChild=(page==children[children.length-1]);page.selected=true;page.domNode.style.display="";if(page._loadCheck){page._loadCheck();}
if(page.onShow){page.onShow();}},_hideChild:function(page){page.selected=false;page.domNode.style.display="none";if(page.onHide){page.onHide();}},closeChild:function(page){var remove=page.onClose(this,page);if(remove){this.removeChild(page);page.destroyRecursive();}},destroy:function(){this._beingDestroyed=true;this.inherited(arguments);}});dojo.declare("dijit.layout.StackController",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<span wairole='tablist' dojoAttachEvent='onkeypress' class='dijitStackController'></span>",containerId:"",buttonWidget:"dijit.layout._StackButton",postCreate:function(){dijit.setWaiRole(this.domNode,"tablist");this.pane2button={};this.pane2handles={};this.pane2menu={};this._subscriptions=[dojo.subscribe(this.containerId+"-startup",this,"onStartup"),dojo.subscribe(this.containerId+"-addChild",this,"onAddChild"),dojo.subscribe(this.containerId+"-removeChild",this,"onRemoveChild"),dojo.subscribe(this.containerId+"-selectChild",this,"onSelectChild"),dojo.subscribe(this.containerId+"-containerKeyPress",this,"onContainerKeyPress")];},onStartup:function(info){dojo.forEach(info.children,this.onAddChild,this);this.onSelectChild(info.selected);},destroy:function(){for(var pane in this.pane2button){this.onRemoveChild(pane);}
dojo.forEach(this._subscriptions,dojo.unsubscribe);this.inherited(arguments);},onAddChild:function(page,insertIndex){var refNode=dojo.doc.createElement("span");this.domNode.appendChild(refNode);var cls=dojo.getObject(this.buttonWidget);var button=new cls({label:page.title,closeButton:page.closable},refNode);this.addChild(button,insertIndex);this.pane2button[page]=button;page.controlButton=button;var handles=[];handles.push(dojo.connect(button,"onClick",dojo.hitch(this,"onButtonClick",page)));if(page.closable){handles.push(dojo.connect(button,"onClickCloseButton",dojo.hitch(this,"onCloseButtonClick",page)));var _nlsResources=dojo.i18n.getLocalization("dijit","common");var closeMenu=new dijit.Menu({targetNodeIds:[button.id],id:button.id+"_Menu"});var mItem=new dijit.MenuItem({label:_nlsResources.itemClose});handles.push(dojo.connect(mItem,"onClick",dojo.hitch(this,"onCloseButtonClick",page)));closeMenu.addChild(mItem);this.pane2menu[page]=closeMenu;}
this.pane2handles[page]=handles;if(!this._currentChild){button.focusNode.setAttribute("tabIndex","0");this._currentChild=page;}
if(!this.isLeftToRight()&&dojo.isIE&&this._rectifyRtlTabList){this._rectifyRtlTabList();}},onRemoveChild:function(page){if(this._currentChild===page){this._currentChild=null;}
dojo.forEach(this.pane2handles[page],dojo.disconnect);delete this.pane2handles[page];var menu=this.pane2menu[page];if(menu){menu.destroyRecursive();delete this.pane2menu[page];}
var button=this.pane2button[page];if(button){button.destroy();delete this.pane2button[page];}},onSelectChild:function(page){if(!page){return;}
if(this._currentChild){var oldButton=this.pane2button[this._currentChild];oldButton.attr('checked',false);oldButton.focusNode.setAttribute("tabIndex","-1");}
var newButton=this.pane2button[page];newButton.attr('checked',true);this._currentChild=page;newButton.focusNode.setAttribute("tabIndex","0");var container=dijit.byId(this.containerId);dijit.setWaiState(container.containerNode,"labelledby",newButton.id);},onButtonClick:function(page){var container=dijit.byId(this.containerId);container.selectChild(page);},onCloseButtonClick:function(page){var container=dijit.byId(this.containerId);container.closeChild(page);var b=this.pane2button[this._currentChild];if(b){dijit.focus(b.focusNode||b.domNode);}},adjacent:function(forward){if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition))){forward=!forward;}
var children=this.getChildren();var current=dojo.indexOf(children,this.pane2button[this._currentChild]);var offset=forward?1:children.length-1;return children[(current+offset)%children.length];},onkeypress:function(e){if(this.disabled||e.altKey){return;}
var forward=null;if(e.ctrlKey||!e._djpage){var k=dojo.keys;switch(e.charOrCode){case k.LEFT_ARROW:case k.UP_ARROW:if(!e._djpage){forward=false;}
break;case k.PAGE_UP:if(e.ctrlKey){forward=false;}
break;case k.RIGHT_ARROW:case k.DOWN_ARROW:if(!e._djpage){forward=true;}
break;case k.PAGE_DOWN:if(e.ctrlKey){forward=true;}
break;case k.DELETE:if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}
dojo.stopEvent(e);break;default:if(e.ctrlKey){if(e.charOrCode===k.TAB){this.adjacent(!e.shiftKey).onClick();dojo.stopEvent(e);}else if(e.charOrCode=="w"){if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}
dojo.stopEvent(e);}}}
if(forward!==null){this.adjacent(forward).onClick();dojo.stopEvent(e);}}},onContainerKeyPress:function(info){info.e._djpage=info.page;this.onkeypress(info.e);}});dojo.declare("dijit.layout._StackButton",dijit.form.ToggleButton,{tabIndex:"-1",postCreate:function(evt){dijit.setWaiRole((this.focusNode||this.domNode),"tab");this.inherited(arguments);},onClick:function(evt){dijit.focus(this.focusNode);},onClickCloseButton:function(evt){evt.stopPropagation();}});dojo.extend(dijit._Widget,{title:"",selected:false,closable:false,onClose:function(){return true;}});}
if(!dojo._hasResource["dijit.layout.TabContainer"]){dojo._hasResource["dijit.layout.TabContainer"]=true;dojo.provide("dijit.layout.TabContainer");dojo.declare("dijit.layout.TabContainer",[dijit.layout.StackContainer,dijit._Templated],{tabPosition:"top",baseClass:"dijitTabContainer",tabStrip:false,templateString:null,templateString:"<div class=\"dijitTabContainer\">\n\t<div dojoAttachPoint=\"tablistNode\"></div>\n\t<div dojoAttachPoint=\"tablistSpacer\" class=\"dijitTabSpacer ${baseClass}-spacer\"></div>\n\t<div class=\"dijitTabPaneWrapper ${baseClass}-container\" dojoAttachPoint=\"containerNode\"></div>\n</div>\n",_controllerWidget:"dijit.layout.TabController",postMixInProperties:function(){this.baseClass+=this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"");this.inherited(arguments);},postCreate:function(){this.inherited(arguments);var TabController=dojo.getObject(this._controllerWidget);this.tablist=new TabController({id:this.id+"_tablist",tabPosition:this.tabPosition,doLayout:this.doLayout,containerId:this.id,"class":this.baseClass+"-tabs"+(this.doLayout?"":" dijitTabNoLayout")},this.tablistNode);if(this.tabStrip){dojo.addClass(this.tablist.domNode,this.baseClass+"Strip");}},_setupChild:function(tab){dojo.addClass(tab.domNode,"dijitTabPane");this.inherited(arguments);return tab;},startup:function(){if(this._started){return;}
this.tablist.startup();this.inherited(arguments);},layout:function(){if(!this.doLayout){return;}
var titleAlign=this.tabPosition.replace(/-h/,"");var children=[{domNode:this.tablist.domNode,layoutAlign:titleAlign},{domNode:this.tablistSpacer,layoutAlign:titleAlign},{domNode:this.containerNode,layoutAlign:"client"}];dijit.layout.layoutChildren(this.domNode,this._contentBox,children);this._containerContentBox=dijit.layout.marginBox2contentBox(this.containerNode,children[2]);if(this.selectedChildWidget){this._showChild(this.selectedChildWidget);if(this.doLayout&&this.selectedChildWidget.resize){this.selectedChildWidget.resize(this._containerContentBox);}}},destroy:function(){if(this.tablist){this.tablist.destroy();}
this.inherited(arguments);}});dojo.declare("dijit.layout.TabController",dijit.layout.StackController,{templateString:"<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'></div>",tabPosition:"top",doLayout:true,buttonWidget:"dijit.layout._TabButton",_rectifyRtlTabList:function(){if(0>=this.tabPosition.indexOf('-h')){return;}
if(!this.pane2button){return;}
var maxWidth=0;for(var pane in this.pane2button){var ow=this.pane2button[pane].innerDiv.scrollWidth;maxWidth=Math.max(maxWidth,ow);}
for(pane in this.pane2button){this.pane2button[pane].innerDiv.style.width=maxWidth+'px';}}});dojo.declare("dijit.layout._TabButton",dijit.layout._StackButton,{baseClass:"dijitTab",templateString:"<div waiRole=\"presentation\" dojoAttachEvent='onclick:onClick,onmouseenter:_onMouse,onmouseleave:_onMouse'>\n    <div waiRole=\"presentation\" class='dijitTabInnerDiv' dojoAttachPoint='innerDiv'>\n        <div waiRole=\"presentation\" class='dijitTabContent' dojoAttachPoint='tabContent'>\n\t        <span dojoAttachPoint='containerNode,focusNode' class='tabLabel'>${!label}</span><img class =\"dijitTabButtonSpacer\" src=\"${_blankGif}\" />\n\t        <div class=\"dijitInline closeNode\" dojoAttachPoint='closeNode' dojoAttachEvent='onclick:onClickCloseButton'>\n\t        \t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint='closeButtonNode' class='closeImage' dojoAttachEvent='onmouseenter:_onMouse, onmouseleave:_onMouse' stateModifier='CloseButton' waiRole=\"presentation\"/>\n\t            <span dojoAttachPoint='closeText' class='closeText'>x</span>\n\t        </div>\n        </div>\n    </div>\n</div>\n",_scroll:false,postCreate:function(){if(this.closeButton){dojo.addClass(this.innerDiv,"dijitClosable");var _nlsResources=dojo.i18n.getLocalization("dijit","common");if(this.closeNode){dojo.attr(this.closeNode,"title",_nlsResources.itemClose);dojo.attr(this.closeButtonNode,"title",_nlsResources.itemClose);}}else{this.closeNode.style.display="none";}
this.inherited(arguments);dojo.setSelectable(this.containerNode,false);}});}
if(!dojo._hasResource["dojo.regexp"]){dojo._hasResource["dojo.regexp"]=true;dojo.provide("dojo.regexp");dojo.regexp.escapeString=function(str,except){return str.replace(/([\.$?*!=:|{}\(\)\[\]\\\/^])/g,function(ch){if(except&&except.indexOf(ch)!=-1){return ch;}
return"\\"+ch;});}
dojo.regexp.buildGroupRE=function(arr,re,nonCapture){if(!(arr instanceof Array)){return re(arr);}
var b=[];for(var i=0;i<arr.length;i++){b.push(re(arr[i]));}
return dojo.regexp.group(b.join("|"),nonCapture);}
dojo.regexp.group=function(expression,nonCapture){return"("+(nonCapture?"?:":"")+expression+")";}}
if(!dojo._hasResource["dojo.cookie"]){dojo._hasResource["dojo.cookie"]=true;dojo.provide("dojo.cookie");dojo.cookie=function(name,value,props){var c=document.cookie;if(arguments.length==1){var matches=c.match(new RegExp("(?:^|; )"+dojo.regexp.escapeString(name)+"=([^;]*)"));return matches?decodeURIComponent(matches[1]):undefined;}else{props=props||{};var exp=props.expires;if(typeof exp=="number"){var d=new Date();d.setTime(d.getTime()+exp*24*60*60*1000);exp=props.expires=d;}
if(exp&&exp.toUTCString){props.expires=exp.toUTCString();}
value=encodeURIComponent(value);var updatedCookie=name+"="+value,propName;for(propName in props){updatedCookie+="; "+propName;var propValue=props[propName];if(propValue!==true){updatedCookie+="="+propValue;}}
document.cookie=updatedCookie;}};dojo.cookie.isSupported=function(){if(!("cookieEnabled"in navigator)){this("__djCookieTest__","CookiesAllowed");navigator.cookieEnabled=this("__djCookieTest__")=="CookiesAllowed";if(navigator.cookieEnabled){this("__djCookieTest__","",{expires:-1});}}
return navigator.cookieEnabled;};}
if(!dojo._hasResource["dijit.layout.BorderContainer"]){dojo._hasResource["dijit.layout.BorderContainer"]=true;dojo.provide("dijit.layout.BorderContainer");dojo.declare("dijit.layout.BorderContainer",dijit.layout._LayoutWidget,{design:"headline",gutters:true,liveSplitters:true,persist:false,baseClass:"dijitBorderContainer",_splitterClass:"dijit.layout._Splitter",postMixInProperties:function(){if(!this.gutters){this.baseClass+="NoGutter";}
this.inherited(arguments);},postCreate:function(){this.inherited(arguments);this._splitters={};this._splitterThickness={};},startup:function(){if(this._started){return;}
dojo.forEach(this.getChildren(),this._setupChild,this);this.inherited(arguments);},_setupChild:function(child){var region=child.region;if(region){this.inherited(arguments);dojo.addClass(child.domNode,this.baseClass+"Pane");var ltr=this.isLeftToRight();if(region=="leading"){region=ltr?"left":"right";}
if(region=="trailing"){region=ltr?"right":"left";}
this["_"+region]=child.domNode;this["_"+region+"Widget"]=child;if((child.splitter||this.gutters)&&!this._splitters[region]){var _Splitter=dojo.getObject(child.splitter?this._splitterClass:"dijit.layout._Gutter");var flip={left:'right',right:'left',top:'bottom',bottom:'top',leading:'trailing',trailing:'leading'};var splitter=new _Splitter({container:this,child:child,region:region,oppNode:dojo.query('[region='+flip[child.region]+']',this.domNode)[0],live:this.liveSplitters});splitter.isSplitter=true;this._splitters[region]=splitter.domNode;dojo.place(this._splitters[region],child.domNode,"after");splitter.startup();}
child.region=region;}},_computeSplitterThickness:function(region){this._splitterThickness[region]=this._splitterThickness[region]||dojo.marginBox(this._splitters[region])[(/top|bottom/.test(region)?'h':'w')];},layout:function(){for(var region in this._splitters){this._computeSplitterThickness(region);}
this._layoutChildren();},addChild:function(child,insertIndex){this.inherited(arguments);if(this._started){this._layoutChildren();}},removeChild:function(child){var region=child.region;var splitter=this._splitters[region];if(splitter){dijit.byNode(splitter).destroy();delete this._splitters[region];delete this._splitterThickness[region];}
this.inherited(arguments);delete this["_"+region];delete this["_"+region+"Widget"];if(this._started){this._layoutChildren(child.region);}
dojo.removeClass(child.domNode,this.baseClass+"Pane");},getChildren:function(){return dojo.filter(this.inherited(arguments),function(widget){return!widget.isSplitter;});},getSplitter:function(region){var splitter=this._splitters[region];return splitter?dijit.byNode(splitter):null;},resize:function(newSize,currentSize){if(!this.cs||!this.pe){var node=this.domNode;this.cs=dojo.getComputedStyle(node);this.pe=dojo._getPadExtents(node,this.cs);this.pe.r=dojo._toPixelValue(node,this.cs.paddingRight);this.pe.b=dojo._toPixelValue(node,this.cs.paddingBottom);dojo.style(node,"padding","0px");}
this.inherited(arguments);},_layoutChildren:function(changedRegion){var sidebarLayout=(this.design=="sidebar");var topHeight=0,bottomHeight=0,leftWidth=0,rightWidth=0;var topStyle={},leftStyle={},rightStyle={},bottomStyle={},centerStyle=(this._center&&this._center.style)||{};var changedSide=/left|right/.test(changedRegion);var layoutSides=!changedRegion||(!changedSide&&!sidebarLayout);var layoutTopBottom=!changedRegion||(changedSide&&sidebarLayout);if(this._top){topStyle=layoutTopBottom&&this._top.style;topHeight=dojo.marginBox(this._top).h;}
if(this._left){leftStyle=layoutSides&&this._left.style;leftWidth=dojo.marginBox(this._left).w;}
if(this._right){rightStyle=layoutSides&&this._right.style;rightWidth=dojo.marginBox(this._right).w;}
if(this._bottom){bottomStyle=layoutTopBottom&&this._bottom.style;bottomHeight=dojo.marginBox(this._bottom).h;}
var splitters=this._splitters;var topSplitter=splitters.top,bottomSplitter=splitters.bottom,leftSplitter=splitters.left,rightSplitter=splitters.right;var splitterThickness=this._splitterThickness;var topSplitterThickness=splitterThickness.top||0,leftSplitterThickness=splitterThickness.left||0,rightSplitterThickness=splitterThickness.right||0,bottomSplitterThickness=splitterThickness.bottom||0;if(leftSplitterThickness>50||rightSplitterThickness>50){setTimeout(dojo.hitch(this,function(){this._splitterThickness={};for(var region in this._splitters){this._computeSplitterThickness(region);}
this._layoutChildren();}),50);return false;}
var pe=this.pe;var splitterBounds={left:(sidebarLayout?leftWidth+leftSplitterThickness:0)+pe.l+"px",right:(sidebarLayout?rightWidth+rightSplitterThickness:0)+pe.r+"px"};if(topSplitter){dojo.mixin(topSplitter.style,splitterBounds);topSplitter.style.top=topHeight+pe.t+"px";}
if(bottomSplitter){dojo.mixin(bottomSplitter.style,splitterBounds);bottomSplitter.style.bottom=bottomHeight+pe.b+"px";}
splitterBounds={top:(sidebarLayout?0:topHeight+topSplitterThickness)+pe.t+"px",bottom:(sidebarLayout?0:bottomHeight+bottomSplitterThickness)+pe.b+"px"};if(leftSplitter){dojo.mixin(leftSplitter.style,splitterBounds);leftSplitter.style.left=leftWidth+pe.l+"px";}
if(rightSplitter){dojo.mixin(rightSplitter.style,splitterBounds);rightSplitter.style.right=rightWidth+pe.r+"px";}
dojo.mixin(centerStyle,{top:pe.t+topHeight+topSplitterThickness+"px",left:pe.l+leftWidth+leftSplitterThickness+"px",right:pe.r+rightWidth+rightSplitterThickness+"px",bottom:pe.b+bottomHeight+bottomSplitterThickness+"px"});var bounds={top:sidebarLayout?pe.t+"px":centerStyle.top,bottom:sidebarLayout?pe.b+"px":centerStyle.bottom};dojo.mixin(leftStyle,bounds);dojo.mixin(rightStyle,bounds);leftStyle.left=pe.l+"px";rightStyle.right=pe.r+"px";topStyle.top=pe.t+"px";bottomStyle.bottom=pe.b+"px";if(sidebarLayout){topStyle.left=bottomStyle.left=leftWidth+leftSplitterThickness+pe.l+"px";topStyle.right=bottomStyle.right=rightWidth+rightSplitterThickness+pe.r+"px";}else{topStyle.left=bottomStyle.left=pe.l+"px";topStyle.right=bottomStyle.right=pe.r+"px";}
var containerHeight=this._borderBox.h-pe.t-pe.b,middleHeight=containerHeight-(topHeight+topSplitterThickness+bottomHeight+bottomSplitterThickness),sidebarHeight=sidebarLayout?containerHeight:middleHeight;var containerWidth=this._borderBox.w-pe.l-pe.r,middleWidth=containerWidth-(leftWidth+leftSplitterThickness+rightWidth+rightSplitterThickness),sidebarWidth=sidebarLayout?middleWidth:containerWidth;var dim={top:{w:sidebarWidth,h:topHeight},bottom:{w:sidebarWidth,h:bottomHeight},left:{w:leftWidth,h:sidebarHeight},right:{w:rightWidth,h:sidebarHeight},center:{h:middleHeight,w:middleWidth}};var janky=dojo.isIE||dojo.some(this.getChildren(),function(child){return child.domNode.tagName=="TEXTAREA"||child.domNode.tagName=="INPUT";});if(janky){var resizeWidget=function(widget,changes,result){if(widget){(widget.resize?widget.resize(changes,result):dojo.marginBox(widget.domNode,changes));}};if(leftSplitter){leftSplitter.style.height=sidebarHeight;}
if(rightSplitter){rightSplitter.style.height=sidebarHeight;}
resizeWidget(this._leftWidget,{h:sidebarHeight},dim.left);resizeWidget(this._rightWidget,{h:sidebarHeight},dim.right);if(topSplitter){topSplitter.style.width=sidebarWidth;}
if(bottomSplitter){bottomSplitter.style.width=sidebarWidth;}
resizeWidget(this._topWidget,{w:sidebarWidth},dim.top);resizeWidget(this._bottomWidget,{w:sidebarWidth},dim.bottom);resizeWidget(this._centerWidget,dim.center);}else{var resizeList={};if(changedRegion){resizeList[changedRegion]=resizeList.center=true;if(/top|bottom/.test(changedRegion)&&this.design!="sidebar"){resizeList.left=resizeList.right=true;}else if(/left|right/.test(changedRegion)&&this.design=="sidebar"){resizeList.top=resizeList.bottom=true;}}
dojo.forEach(this.getChildren(),function(child){if(child.resize&&(!changedRegion||child.region in resizeList)){child.resize(null,dim[child.region]);}},this);}},destroy:function(){for(region in this._splitters){var splitter=this._splitters[region];dijit.byNode(splitter).destroy();dojo._destroyElement(splitter);}
delete this._splitters;delete this._splitterThickness;this.inherited(arguments);}});dojo.extend(dijit._Widget,{region:'',splitter:false,minSize:0,maxSize:Infinity});dojo.declare("dijit.layout._Splitter",[dijit._Widget,dijit._Templated],{live:true,templateString:'<div class="dijitSplitter" dojoAttachEvent="onkeypress:_onKeyPress,onmousedown:_startDrag" tabIndex="0" waiRole="separator"><div class="dijitSplitterThumb"></div></div>',postCreate:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);dojo.addClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V"));this._factor=/top|left/.test(this.region)?1:-1;this._minSize=this.child.minSize;this.child.domNode._recalc=true;this.connect(this.container,"resize",function(){this.child.domNode._recalc=true;});this._cookieName=this.container.id+"_"+this.region;if(this.container.persist){var persistSize=dojo.cookie(this._cookieName);if(persistSize){this.child.domNode.style[this.horizontal?"height":"width"]=persistSize;}}},_computeMaxSize:function(){var dim=this.horizontal?'h':'w',thickness=this.container._splitterThickness[this.region];var available=dojo.contentBox(this.container.domNode)[dim]-
(this.oppNode?dojo.marginBox(this.oppNode)[dim]:0)-
20-thickness*2;this._maxSize=Math.min(this.child.maxSize,available);},_startDrag:function(e){if(this.child.domNode._recalc){this._computeMaxSize();this.child.domNode._recalc=false;}
if(!this.cover){this.cover=dojo.doc.createElement('div');dojo.addClass(this.cover,"dijitSplitterCover");dojo.place(this.cover,this.child.domNode,"after");}else{this.cover.style.zIndex=1;}
if(this.fake){dojo._destroyElement(this.fake);}
if(!(this._resize=this.live)){(this.fake=this.domNode.cloneNode(true)).removeAttribute("id");dojo.addClass(this.domNode,"dijitSplitterShadow");dojo.place(this.fake,this.domNode,"after");}
dojo.addClass(this.domNode,"dijitSplitterActive");var factor=this._factor,max=this._maxSize,min=this._minSize||20,isHorizontal=this.horizontal,axis=isHorizontal?"pageY":"pageX",pageStart=e[axis],splitterStyle=this.domNode.style,dim=isHorizontal?'h':'w',childStart=dojo.marginBox(this.child.domNode)[dim],region=this.region,splitterStart=parseInt(this.domNode.style[region],10),resize=this._resize,mb={},childNode=this.child.domNode,layoutFunc=dojo.hitch(this.container,this.container._layoutChildren),de=dojo.doc.body;this._handlers=(this._handlers||[]).concat([dojo.connect(de,"onmousemove",this._drag=function(e,forceResize){var delta=e[axis]-pageStart,childSize=factor*delta+childStart,boundChildSize=Math.max(Math.min(childSize,max),min);if(resize||forceResize){mb[dim]=boundChildSize;dojo.marginBox(childNode,mb);layoutFunc(region);}
splitterStyle[region]=factor*delta+splitterStart+(boundChildSize-childSize)+"px";}),dojo.connect(de,"onmouseup",this,"_stopDrag")]);dojo.stopEvent(e);},_stopDrag:function(e){try{if(this.cover){this.cover.style.zIndex=-1;}
if(this.fake){dojo._destroyElement(this.fake);}
dojo.removeClass(this.domNode,"dijitSplitterActive");dojo.removeClass(this.domNode,"dijitSplitterShadow");this._drag(e);this._drag(e,true);}finally{this._cleanupHandlers();if(this.oppNode){this.oppNode._recalc=true;}
delete this._drag;}
if(this.container.persist){dojo.cookie(this._cookieName,this.child.domNode.style[this.horizontal?"height":"width"],{expires:365});}},_cleanupHandlers:function(){dojo.forEach(this._handlers,dojo.disconnect);delete this._handlers;},_onKeyPress:function(e){if(this.child.domNode._recalc){this._computeMaxSize();this.child.domNode._recalc=false;}
this._resize=true;var horizontal=this.horizontal;var tick=1;var dk=dojo.keys;switch(e.charOrCode){case horizontal?dk.UP_ARROW:dk.LEFT_ARROW:tick*=-1;case horizontal?dk.DOWN_ARROW:dk.RIGHT_ARROW:break;default:return;}
var childSize=dojo.marginBox(this.child.domNode)[horizontal?'h':'w']+this._factor*tick;var mb={};mb[this.horizontal?"h":"w"]=Math.max(Math.min(childSize,this._maxSize),this._minSize);dojo.marginBox(this.child.domNode,mb);if(this.oppNode){this.oppNode._recalc=true;}
this.container._layoutChildren(this.region);dojo.stopEvent(e);},destroy:function(){this._cleanupHandlers();delete this.child;delete this.container;delete this.fake;this.inherited(arguments);}});dojo.declare("dijit.layout._Gutter",[dijit._Widget,dijit._Templated],{templateString:'<div class="dijitGutter" waiRole="presentation"></div>',postCreate:function(){this.horizontal=/top|bottom/.test(this.region);dojo.addClass(this.domNode,"dijitGutter"+(this.horizontal?"H":"V"));}});}
if(!dojo._hasResource["dijit.Tooltip"]){dojo._hasResource["dijit.Tooltip"]=true;dojo.provide("dijit.Tooltip");dojo.declare("dijit._MasterTooltip",[dijit._Widget,dijit._Templated],{duration:dijit.defaultDuration,templateString:"<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\">\n\t<div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" waiRole='alert'></div>\n\t<div class=\"dijitTooltipConnector\"></div>\n</div>\n",postCreate:function(){dojo.body().appendChild(this.domNode);this.bgIframe=new dijit.BackgroundIframe(this.domNode);this.fadeIn=dojo.fadeIn({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onShow")});this.fadeOut=dojo.fadeOut({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onHide")});},show:function(innerHTML,aroundNode,position){if(this.aroundNode&&this.aroundNode===aroundNode){return;}
if(this.fadeOut.status()=="playing"){this._onDeck=arguments;return;}
this.containerNode.innerHTML=innerHTML;this.domNode.style.top=(this.domNode.offsetTop+1)+"px";var align={};var ltr=this.isLeftToRight();dojo.forEach((position&&position.length)?position:dijit.Tooltip.defaultPosition,function(pos){switch(pos){case"after":align[ltr?"BR":"BL"]=ltr?"BL":"BR";break;case"before":align[ltr?"BL":"BR"]=ltr?"BR":"BL";break;case"below":align[ltr?"BL":"BR"]=ltr?"TL":"TR";align[ltr?"BR":"BL"]=ltr?"TR":"TL";break;case"above":default:align[ltr?"TL":"TR"]=ltr?"BL":"BR";align[ltr?"TR":"TL"]=ltr?"BR":"BL";break;}});var pos=dijit.placeOnScreenAroundElement(this.domNode,aroundNode,align,dojo.hitch(this,"orient"));dojo.style(this.domNode,"opacity",0);this.fadeIn.play();this.isShowingNow=true;this.aroundNode=aroundNode;},orient:function(node,aroundCorner,tooltipCorner){node.className="dijitTooltip "+
{"BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[aroundCorner+"-"+tooltipCorner];},_onShow:function(){if(dojo.isIE){this.domNode.style.filter="";}},hide:function(aroundNode){if(this._onDeck&&this._onDeck[1]==aroundNode){this._onDeck=null;}else if(this.aroundNode===aroundNode){this.fadeIn.stop();this.isShowingNow=false;this.aroundNode=null;this.fadeOut.play();}else{}},_onHide:function(){this.domNode.style.cssText="";if(this._onDeck){this.show.apply(this,this._onDeck);this._onDeck=null;}}});dijit.showTooltip=function(innerHTML,aroundNode,position){if(!dijit._masterTT){dijit._masterTT=new dijit._MasterTooltip();}
return dijit._masterTT.show(innerHTML,aroundNode,position);};dijit.hideTooltip=function(aroundNode){if(!dijit._masterTT){dijit._masterTT=new dijit._MasterTooltip();}
return dijit._masterTT.hide(aroundNode);};dojo.declare("dijit.Tooltip",dijit._Widget,{label:"",showDelay:400,connectId:[],position:[],postCreate:function(){dojo.addClass(this.domNode,"dijitTooltipData");this._connectNodes=[];dojo.forEach(this.connectId,function(id){var node=dojo.byId(id);if(node){this._connectNodes.push(node);dojo.forEach(["onMouseEnter","onMouseLeave","onFocus","onBlur"],function(event){this.connect(node,event.toLowerCase(),"_"+event);},this);if(dojo.isIE){node.style.zoom=1;}}},this);},_onMouseEnter:function(e){this._onHover(e);},_onMouseLeave:function(e){this._onUnHover(e);},_onFocus:function(e){this._focus=true;this._onHover(e);this.inherited(arguments);},_onBlur:function(e){this._focus=false;this._onUnHover(e);this.inherited(arguments);},_onHover:function(e){if(!this._showTimer){var target=e.target;this._showTimer=setTimeout(dojo.hitch(this,function(){this.open(target)}),this.showDelay);}},_onUnHover:function(e){if(this._focus){return;}
if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}
this.close();},open:function(target){target=target||this._connectNodes[0];if(!target){return;}
if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}
dijit.showTooltip(this.label||this.domNode.innerHTML,target,this.position);this._connectNode=target;},close:function(){if(this._connectNode){dijit.hideTooltip(this._connectNode);delete this._connectNode;}
if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}},uninitialize:function(){this.close();}});dijit.Tooltip.defaultPosition=["after","before"];}
if(!dojo._hasResource["dijit.dijit"]){dojo._hasResource["dijit.dijit"]=true;dojo.provide("dijit.dijit");}
if(!dojo._hasResource["dijit.form.TextBox"]){dojo._hasResource["dijit.form.TextBox"]=true;dojo.provide("dijit.form.TextBox");dojo.declare("dijit.form.TextBox",dijit.form._FormValueWidget,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",templateString:"<input class=\"dijit dijitReset dijitLeft\" dojoAttachPoint='textbox,focusNode' name=\"${name}\"\n\tdojoAttachEvent='onmouseenter:_onMouse,onmouseleave:_onMouse,onfocus:_onMouse,onblur:_onMouse,onkeypress:_onKeyPress'\n\tautocomplete=\"off\" type=\"${type}\"\n\t/>\n",baseClass:"dijitTextBox",attributeMap:dojo.mixin(dojo.clone(dijit.form._FormValueWidget.prototype.attributeMap),{maxLength:"focusNode"}),_getValueAttr:function(){return this.parse(this.attr('displayedValue'),this.constraints);},_setValueAttr:function(value,priorityChange,formattedValue){var filteredValue;if(value!==undefined){filteredValue=this.filter(value);if(filteredValue!==null&&((typeof filteredValue!="number")||!isNaN(filteredValue))){if(typeof formattedValue!="string"){formattedValue=this.format(filteredValue,this.constraints);}}else{formattedValue='';}}
if(formattedValue!=null&&formattedValue!=undefined){this.textbox.value=formattedValue;}
dijit.form.TextBox.superclass._setValueAttr.call(this,filteredValue,priorityChange);},displayedValue:"",getDisplayedValue:function(){dojo.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use attr('displayedValue') instead.","","2.0");return this.attr('displayedValue');},_getDisplayedValueAttr:function(){return this.filter(this.textbox.value);},setDisplayedValue:function(value){dojo.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use attr('displayedValue', ...) instead.","","2.0");this.attr('displayedValue',value);},_setDisplayedValueAttr:function(value){this.textbox.value=value;this._setValueAttr(this.attr('value'));},format:function(value,constraints){return((value==null||value==undefined)?"":(value.toString?value.toString():value));},parse:function(value,constraints){return value;},postCreate:function(){this.textbox.setAttribute("value",this.textbox.value);this.inherited(arguments);this._layoutHack();},filter:function(val){if(typeof val!="string"){return val;}
if(this.trim){val=dojo.trim(val);}
if(this.uppercase){val=val.toUpperCase();}
if(this.lowercase){val=val.toLowerCase();}
if(this.propercase){val=val.replace(/[^\s]+/g,function(word){return word.substring(0,1).toUpperCase()+word.substring(1);});}
return val;},_setBlurValue:function(){this._setValueAttr(this.attr('value'),(this.isValid?this.isValid():true));},_onBlur:function(){this._setBlurValue();this.inherited(arguments);}});dijit.selectInputText=function(element,start,stop){var _window=dojo.global;var _document=dojo.doc;element=dojo.byId(element);if(isNaN(start)){start=0;}
if(isNaN(stop)){stop=element.value?element.value.length:0;}
element.focus();if(_document["selection"]&&dojo.body()["createTextRange"]){if(element.createTextRange){var range=element.createTextRange();with(range){collapse(true);moveStart("character",start);moveEnd("character",stop);select();}}}else if(_window["getSelection"]){var selection=_window.getSelection();if(element.setSelectionRange){element.setSelectionRange(start,stop);}}}}
if(!dojo._hasResource["dijit.form.ValidationTextBox"]){dojo._hasResource["dijit.form.ValidationTextBox"]=true;dojo.provide("dijit.form.ValidationTextBox");dojo.declare("dijit.form.ValidationTextBox",dijit.form.TextBox,{templateString:"<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\" waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div class=\"dijitReset dijitValidationIconText\">&Chi;</div\n\t\t><div class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\" dojoAttachPoint='textbox,focusNode' dojoAttachEvent='onfocus:_update,onkeyup:_update,onblur:_onMouse,onkeypress:_onKeyPress' autocomplete=\"off\"\n\t\t\ttype='${type}' name='${name}'\n\t\t/></div\n\t></div\n></div>\n",baseClass:"dijitTextBox",required:false,promptMessage:"",invalidMessage:"$_unset_$",constraints:{},regExp:".*",regExpGen:function(constraints){return this.regExp;},state:"",tooltipPosition:[],_setValueAttr:function(){this.inherited(arguments);this.validate(this._focused);},validator:function(value,constraints){return(new RegExp("^(?:"+this.regExpGen(constraints)+")"+(this.required?"":"?")+"$")).test(value)&&(!this.required||!this._isEmpty(value))&&(this._isEmpty(value)||this.parse(value,constraints)!==undefined);},_isValidSubset:function(){return this.textbox.value.search(this._partialre)==0;},isValid:function(isFocused){return this.validator(this.textbox.value,this.constraints);},_isEmpty:function(value){return/^\s*$/.test(value);},getErrorMessage:function(isFocused){return this.invalidMessage;},getPromptMessage:function(isFocused){return this.promptMessage;},_maskValidSubsetError:true,validate:function(isFocused){var message="";var isValid=this.disabled||this.isValid(isFocused);if(isValid){this._maskValidSubsetError=true;}
var isValidSubset=!isValid&&isFocused&&this._isValidSubset();var isEmpty=this._isEmpty(this.textbox.value);this.state=(isValid||(!this._hasBeenBlurred&&isEmpty)||isValidSubset)?"":"Error";if(this.state=="Error"){this._maskValidSubsetError=false;}
this._setStateClass();dijit.setWaiState(this.focusNode,"invalid",isValid?"false":"true");if(isFocused){if(isEmpty){message=this.getPromptMessage(true);}
if(!message&&(this.state=="Error"||(isValidSubset&&!this._maskValidSubsetError))){message=this.getErrorMessage(true);}}
this.displayMessage(message);return isValid;},_message:"",displayMessage:function(message){if(this._message==message){return;}
this._message=message;dijit.hideTooltip(this.domNode);if(message){dijit.showTooltip(message,this.domNode,this.tooltipPosition);}},_refreshState:function(){this.validate(this._focused);},_update:function(e){this._refreshState();this._onMouse(e);},constructor:function(){this.constraints={};},postMixInProperties:function(){this.inherited(arguments);this.constraints.locale=this.lang;this.messages=dojo.i18n.getLocalization("dijit.form","validate",this.lang);if(this.invalidMessage=="$_unset_$"){this.invalidMessage=this.messages.invalidMessage;}
var p=this.regExpGen(this.constraints);this.regExp=p;var partialre="";if(p!=".*"){this.regExp.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,function(re){switch(re.charAt(0)){case'{':case'+':case'?':case'*':case'^':case'$':case'|':case'(':partialre+=re;break;case")":partialre+="|$)";break;default:partialre+="(?:"+re+"|$)";break;}});}
try{"".search(partialre);}catch(e){partialre=this.regExp;}
this._partialre="^(?:"+partialre+")$";},_setDisabledAttr:function(value){this.inherited(arguments);if(this.valueNode){this.valueNode.disabled=value;}
this._refreshState();},_setRequiredAttr:function(value){this.required=value;dijit.setWaiState(this.focusNode,"required",value);this._refreshState();},postCreate:function(){if(dojo.isIE){var s=dojo.getComputedStyle(this.focusNode);if(s){var ff=s.fontFamily;if(ff){this.focusNode.style.fontFamily=ff;}}}
this.inherited(arguments);}});dojo.declare("dijit.form.MappedTextBox",dijit.form.ValidationTextBox,{serialize:function(val,options){return val.toString?val.toString():"";},toString:function(){var val=this.filter(this.attr('value'));return val!=null?(typeof val=="string"?val:this.serialize(val,this.constraints)):"";},validate:function(){this.valueNode.value=this.toString();return this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);var textbox=this.textbox;var valueNode=(this.valueNode=dojo.doc.createElement("input"));valueNode.setAttribute("type",textbox.type);dojo.style(valueNode,"display","none");this.valueNode.name=this.textbox.name;dojo.place(valueNode,textbox,"after");this.textbox.name=this.textbox.name+"_displayed_";this.textbox.removeAttribute("name");},_setDisabledAttr:function(value){this.inherited(arguments);dojo.attr(this.valueNode,'disabled',value);}});dojo.declare("dijit.form.RangeBoundTextBox",dijit.form.MappedTextBox,{rangeMessage:"",rangeCheck:function(primitive,constraints){var isMin="min"in constraints;var isMax="max"in constraints;if(isMin||isMax){return(!isMin||this.compare(primitive,constraints.min)>=0)&&(!isMax||this.compare(primitive,constraints.max)<=0);}
return true;},isInRange:function(isFocused){return this.rangeCheck(this.attr('value'),this.constraints);},_isDefinitelyOutOfRange:function(){var val=this.attr('value');var isTooLittle=false;var isTooMuch=false;if("min"in this.constraints){var min=this.constraints.min;val=this.compare(val,((typeof min=="number")&&min>=0&&val!=0)?0:min);isTooLittle=(typeof val=="number")&&val<0;}
if("max"in this.constraints){var max=this.constraints.max;val=this.compare(val,((typeof max!="number")||max>0)?max:0);isTooMuch=(typeof val=="number")&&val>0;}
return isTooLittle||isTooMuch;},_isValidSubset:function(){return this.inherited(arguments)&&!this._isDefinitelyOutOfRange();},isValid:function(isFocused){return this.inherited(arguments)&&((this._isEmpty(this.textbox.value)&&!this.required)||this.isInRange(isFocused));},getErrorMessage:function(isFocused){if(dijit.form.RangeBoundTextBox.superclass.isValid.call(this,false)&&!this.isInRange(isFocused)){return this.rangeMessage;}
return this.inherited(arguments);},postMixInProperties:function(){this.inherited(arguments);if(!this.rangeMessage){this.messages=dojo.i18n.getLocalization("dijit.form","validate",this.lang);this.rangeMessage=this.messages.rangeMessage;}},postCreate:function(){this.inherited(arguments);if(this.constraints.min!==undefined){dijit.setWaiState(this.focusNode,"valuemin",this.constraints.min);}
if(this.constraints.max!==undefined){dijit.setWaiState(this.focusNode,"valuemax",this.constraints.max);}},_setValueAttr:function(value,priorityChange){dijit.setWaiState(this.focusNode,"valuenow",value);this.inherited(arguments);}});}
if(!dojo._hasResource["dijit.form._Spinner"]){dojo._hasResource["dijit.form._Spinner"]=true;dojo.provide("dijit.form._Spinner");dojo.declare("dijit.form._Spinner",dijit.form.RangeBoundTextBox,{defaultTimeout:500,timeoutChangeRate:0.90,smallDelta:1,largeDelta:10,templateString:"<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\" waiRole=\"presentation\"\n\t><div class=\"dijitInputLayoutContainer\"\n\t\t><div class=\"dijitReset dijitSpinnerButtonContainer\"\n\t\t\t>&nbsp;<div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitUpArrowButton\"\n\t\t\t\tdojoAttachPoint=\"upArrowNode\"\n\t\t\t\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse\"\n\t\t\t\tstateModifier=\"UpArrow\"\n\t\t\t\t><div class=\"dijitArrowButtonInner\">&thinsp;</div\n\t\t\t\t><div class=\"dijitArrowButtonChar\">&#9650;</div\n\t\t\t></div\n\t\t\t><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdojoAttachPoint=\"downArrowNode\"\n\t\t\t\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse\"\n\t\t\t\tstateModifier=\"DownArrow\"\n\t\t\t\t><div class=\"dijitArrowButtonInner\">&thinsp;</div\n\t\t\t\t><div class=\"dijitArrowButtonChar\">&#9660;</div\n\t\t\t></div\n\t\t></div\n\t\t><div class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div class=\"dijitReset dijitValidationIconText\">&Chi;</div\n\t\t><div class=\"dijitReset dijitInputField\"\n\t\t\t><input class='dijitReset' dojoAttachPoint=\"textbox,focusNode\" type=\"${type}\" dojoAttachEvent=\"onfocus:_update,onkeyup:_update,onkeypress:_onKeyPress\"\n\t\t\t\twaiRole=\"spinbutton\" autocomplete=\"off\" name=\"${name}\"\n\t\t/></div\n\t></div\n></div>\n",baseClass:"dijitSpinner",adjust:function(val,delta){return val;},_arrowState:function(node,pressed){this._active=pressed;this.stateModifier=node.getAttribute("stateModifier")||"";this._setStateClass();},_arrowPressed:function(nodePressed,direction,increment){if(this.disabled||this.readOnly){return;}
this._arrowState(nodePressed,true);this._setValueAttr(this.adjust(this.attr('value'),direction*increment),false);dijit.selectInputText(this.textbox,this.textbox.value.length);},_arrowReleased:function(node){this._wheelTimer=null;if(this.disabled||this.readOnly){return;}
this._arrowState(node,false);},_typematicCallback:function(count,node,evt){var inc=this.smallDelta;if(node==this.textbox){k=dojo.keys;var key=evt.charOrCode;inc=(key==k.PAGE_UP||key==k.PAGE_DOWN)?this.largeDelta:this.smallDelta;node=(key==k.UP_ARROW||key==k.PAGE_UP)?this.upArrowNode:this.downArrowNode;}
if(count==-1){this._arrowReleased(node);}
else{this._arrowPressed(node,(node==this.upArrowNode)?1:-1,inc);}},_wheelTimer:null,_mouseWheeled:function(evt){dojo.stopEvent(evt);var scrollAmount=evt.detail?(evt.detail*-1):(evt.wheelDelta/120);if(scrollAmount!==0){var node=this[(scrollAmount>0?"upArrowNode":"downArrowNode")];this._arrowPressed(node,scrollAmount,this.smallDelta);if(!this._wheelTimer){clearTimeout(this._wheelTimer);}
this._wheelTimer=setTimeout(dojo.hitch(this,"_arrowReleased",node),50);}},postCreate:function(){this.inherited('postCreate',arguments);this.connect(this.domNode,!dojo.isMozilla?"onmousewheel":'DOMMouseScroll',"_mouseWheeled");this._connects.push(dijit.typematic.addListener(this.upArrowNode,this.textbox,{charOrCode:dojo.keys.UP_ARROW,ctrlKey:false,altKey:false,shiftKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout));this._connects.push(dijit.typematic.addListener(this.downArrowNode,this.textbox,{charOrCode:dojo.keys.DOWN_ARROW,ctrlKey:false,altKey:false,shiftKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout));this._connects.push(dijit.typematic.addListener(this.upArrowNode,this.textbox,{charOrCode:dojo.keys.PAGE_UP,ctrlKey:false,altKey:false,shiftKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout));this._connects.push(dijit.typematic.addListener(this.downArrowNode,this.textbox,{charOrCode:dojo.keys.PAGE_DOWN,ctrlKey:false,altKey:false,shiftKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout));if(dojo.isIE){var _this=this;this.connect(this.domNode,"onresize",function(){setTimeout(dojo.hitch(_this,function(){var sz=this.upArrowNode.parentNode.offsetHeight;if(sz){this.upArrowNode.style.height=sz>>1;this.downArrowNode.style.height=sz-(sz>>1);this.focusNode.parentNode.style.height=sz;}
this._setStateClass();}),0);});}}});}
if(!dojo._hasResource["dojo.number"]){dojo._hasResource["dojo.number"]=true;dojo.provide("dojo.number");dojo.number.format=function(value,options){options=dojo.mixin({},options||{});var locale=dojo.i18n.normalizeLocale(options.locale);var bundle=dojo.i18n.getLocalization("dojo.cldr","number",locale);options.customs=bundle;var pattern=options.pattern||bundle[(options.type||"decimal")+"Format"];if(isNaN(value)){return null;}
return dojo.number._applyPattern(value,pattern,options);};dojo.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;dojo.number._applyPattern=function(value,pattern,options){options=options||{};var group=options.customs.group;var decimal=options.customs.decimal;var patternList=pattern.split(';');var positivePattern=patternList[0];pattern=patternList[(value<0)?1:0]||("-"+positivePattern);if(pattern.indexOf('%')!=-1){value*=100;}else if(pattern.indexOf('\u2030')!=-1){value*=1000;}else if(pattern.indexOf('\u00a4')!=-1){group=options.customs.currencyGroup||group;decimal=options.customs.currencyDecimal||decimal;pattern=pattern.replace(/\u00a4{1,3}/,function(match){var prop=["symbol","currency","displayName"][match.length-1];return options[prop]||options.currency||"";});}else if(pattern.indexOf('E')!=-1){throw new Error("exponential notation not supported");}
var numberPatternRE=dojo.number._numberPatternRE;var numberPattern=positivePattern.match(numberPatternRE);if(!numberPattern){throw new Error("unable to find a number expression in pattern: "+pattern);}
if(options.fractional===false){options.places=0;}
return pattern.replace(numberPatternRE,dojo.number._formatAbsolute(value,numberPattern[0],{decimal:decimal,group:group,places:options.places,round:options.round}));}
dojo.number.round=function(value,places,multiple){var pieces=String(value).split(".");var length=(pieces[1]&&pieces[1].length)||0;if(length>places){var factor=Math.pow(10,places);if(multiple>0){factor*=10/multiple;places++;}
value=Math.round(value*factor)/factor;pieces=String(value).split(".");length=(pieces[1]&&pieces[1].length)||0;if(length>places){pieces[1]=pieces[1].substr(0,places);value=Number(pieces.join("."));}}
return value;}
dojo.number._formatAbsolute=function(value,pattern,options){options=options||{};if(options.places===true){options.places=0;}
if(options.places===Infinity){options.places=6;}
var patternParts=pattern.split(".");var maxPlaces=(options.places>=0)?options.places:(patternParts[1]&&patternParts[1].length)||0;if(!(options.round<0)){value=dojo.number.round(value,maxPlaces,options.round);}
var valueParts=String(Math.abs(value)).split(".");var fractional=valueParts[1]||"";if(options.places){var comma=dojo.isString(options.places)&&options.places.indexOf(",");if(comma){options.places=options.places.substring(comma+1);}
valueParts[1]=dojo.string.pad(fractional.substr(0,options.places),options.places,'0',true);}else if(patternParts[1]&&options.places!==0){var pad=patternParts[1].lastIndexOf("0")+1;if(pad>fractional.length){valueParts[1]=dojo.string.pad(fractional,pad,'0',true);}
var places=patternParts[1].length;if(places<fractional.length){valueParts[1]=fractional.substr(0,places);}}else{if(valueParts[1]){valueParts.pop();}}
var patternDigits=patternParts[0].replace(',','');pad=patternDigits.indexOf("0");if(pad!=-1){pad=patternDigits.length-pad;if(pad>valueParts[0].length){valueParts[0]=dojo.string.pad(valueParts[0],pad);}
if(patternDigits.indexOf("#")==-1){valueParts[0]=valueParts[0].substr(valueParts[0].length-pad);}}
var index=patternParts[0].lastIndexOf(',');var groupSize,groupSize2;if(index!=-1){groupSize=patternParts[0].length-index-1;var remainder=patternParts[0].substr(0,index);index=remainder.lastIndexOf(',');if(index!=-1){groupSize2=remainder.length-index-1;}}
var pieces=[];for(var whole=valueParts[0];whole;){var off=whole.length-groupSize;pieces.push((off>0)?whole.substr(off):whole);whole=(off>0)?whole.slice(0,off):"";if(groupSize2){groupSize=groupSize2;delete groupSize2;}}
valueParts[0]=pieces.reverse().join(options.group||",");return valueParts.join(options.decimal||".");};dojo.number.regexp=function(options){return dojo.number._parseInfo(options).regexp;}
dojo.number._parseInfo=function(options){options=options||{};var locale=dojo.i18n.normalizeLocale(options.locale);var bundle=dojo.i18n.getLocalization("dojo.cldr","number",locale);var pattern=options.pattern||bundle[(options.type||"decimal")+"Format"];var group=bundle.group;var decimal=bundle.decimal;var factor=1;if(pattern.indexOf('%')!=-1){factor/=100;}else if(pattern.indexOf('\u2030')!=-1){factor/=1000;}else{var isCurrency=pattern.indexOf('\u00a4')!=-1;if(isCurrency){group=bundle.currencyGroup||group;decimal=bundle.currencyDecimal||decimal;}}
var patternList=pattern.split(';');if(patternList.length==1){patternList.push("-"+patternList[0]);}
var re=dojo.regexp.buildGroupRE(patternList,function(pattern){pattern="(?:"+dojo.regexp.escapeString(pattern,'.')+")";return pattern.replace(dojo.number._numberPatternRE,function(format){var flags={signed:false,separator:options.strict?group:[group,""],fractional:options.fractional,decimal:decimal,exponent:false};var parts=format.split('.');var places=options.places;if(parts.length==1||places===0){flags.fractional=false;}
else{if(places===undefined){places=options.pattern?parts[1].lastIndexOf('0')+1:Infinity;}
if(places&&options.fractional==undefined){flags.fractional=true;}
if(!options.places&&(places<parts[1].length)){places+=","+parts[1].length;}
flags.places=places;}
var groups=parts[0].split(',');if(groups.length>1){flags.groupSize=groups.pop().length;if(groups.length>1){flags.groupSize2=groups.pop().length;}}
return"("+dojo.number._realNumberRegexp(flags)+")";});},true);if(isCurrency){re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(match,before,target,after){var prop=["symbol","currency","displayName"][target.length-1];var symbol=dojo.regexp.escapeString(options[prop]||options.currency||"");before=before?"[\\s\\xa0]":"";after=after?"[\\s\\xa0]":"";if(!options.strict){if(before){before+="*";}
if(after){after+="*";}
return"(?:"+before+symbol+after+")?";}
return before+symbol+after;});}
return{regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:group,decimal:decimal,factor:factor};}
dojo.number.parse=function(expression,options){var info=dojo.number._parseInfo(options);var results=(new RegExp("^"+info.regexp+"$")).exec(expression);if(!results){return NaN;}
var absoluteMatch=results[1];if(!results[1]){if(!results[2]){return NaN;}
absoluteMatch=results[2];info.factor*=-1;}
absoluteMatch=absoluteMatch.replace(new RegExp("["+info.group+"\\s\\xa0"+"]","g"),"").replace(info.decimal,".");return Number(absoluteMatch)*info.factor;};dojo.number._realNumberRegexp=function(flags){flags=flags||{};if(!("places"in flags)){flags.places=Infinity;}
if(typeof flags.decimal!="string"){flags.decimal=".";}
if(!("fractional"in flags)||/^0/.test(flags.places)){flags.fractional=[true,false];}
if(!("exponent"in flags)){flags.exponent=[true,false];}
if(!("eSigned"in flags)){flags.eSigned=[true,false];}
var integerRE=dojo.number._integerRegexp(flags);var decimalRE=dojo.regexp.buildGroupRE(flags.fractional,function(q){var re="";if(q&&(flags.places!==0)){re="\\"+flags.decimal;if(flags.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+flags.places+"}";}}
return re;},true);var exponentRE=dojo.regexp.buildGroupRE(flags.exponent,function(q){if(q){return"([eE]"+dojo.number._integerRegexp({signed:flags.eSigned})+")";}
return"";});var realRE=integerRE+decimalRE;if(decimalRE){realRE="(?:(?:"+realRE+")|(?:"+decimalRE+"))";}
return realRE+exponentRE;};dojo.number._integerRegexp=function(flags){flags=flags||{};if(!("signed"in flags)){flags.signed=[true,false];}
if(!("separator"in flags)){flags.separator="";}else if(!("groupSize"in flags)){flags.groupSize=3;}
var signRE=dojo.regexp.buildGroupRE(flags.signed,function(q){return q?"[-+]":"";},true);var numberRE=dojo.regexp.buildGroupRE(flags.separator,function(sep){if(!sep){return"(?:0|[1-9]\\d*)";}
sep=dojo.regexp.escapeString(sep);if(sep==" "){sep="\\s";}
else if(sep=="\xa0"){sep="\\s\\xa0";}
var grp=flags.groupSize,grp2=flags.groupSize2;if(grp2){var grp2RE="(?:0|[1-9]\\d{0,"+(grp2-1)+"}(?:["+sep+"]\\d{"+grp2+"})*["+sep+"]\\d{"+grp+"})";return((grp-grp2)>0)?"(?:"+grp2RE+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":grp2RE;}
return"(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return signRE+numberRE;}}
if(!dojo._hasResource["dijit.form.NumberTextBox"]){dojo._hasResource["dijit.form.NumberTextBox"]=true;dojo.provide("dijit.form.NumberTextBox");dojo.declare("dijit.form.NumberTextBoxMixin",null,{regExpGen:dojo.number.regexp,editOptions:{pattern:'#.######'},_onFocus:function(){this._setValueAttr(this.attr('value'),false);this.inherited(arguments);},_formatter:dojo.number.format,format:function(value,constraints){if(typeof value=="string"){return value;}
if(isNaN(value)){return"";}
if(this.editOptions&&this._focused){constraints=dojo.mixin(dojo.mixin({},this.editOptions),this.constraints);}
return this._formatter(value,constraints);},parse:dojo.number.parse,filter:function(value){return(value===null||value===''||value===undefined)?NaN:this.inherited(arguments);},serialize:function(value,options){return(typeof value!="number"||isNaN(value))?'':this.inherited(arguments);},_getValueAttr:function(){var v=this.inherited(arguments);if(isNaN(v)&&this.textbox.value!==''){return undefined;}
return v;},value:NaN});dojo.declare("dijit.form.NumberTextBox",[dijit.form.RangeBoundTextBox,dijit.form.NumberTextBoxMixin],{});}
if(!dojo._hasResource["dijit.form.NumberSpinner"]){dojo._hasResource["dijit.form.NumberSpinner"]=true;dojo.provide("dijit.form.NumberSpinner");dojo.declare("dijit.form.NumberSpinner",[dijit.form._Spinner,dijit.form.NumberTextBoxMixin],{required:true,adjust:function(val,delta){if(isNaN(val)&&delta!=0){var increasing=(delta>0),gotMax=(typeof this.constraints.max=="number"),gotMin=(typeof this.constraints.min=="number");val=increasing?(gotMin?this.constraints.min:(gotMax?this.constraints.max:0)):(gotMax?this.constraints.max:(gotMin?this.constraints.min:0));}
var newval=val+delta;if(isNaN(val)||isNaN(newval)){return val;}
if((typeof this.constraints.max=="number")&&(newval>this.constraints.max)){newval=this.constraints.max;}
if((typeof this.constraints.min=="number")&&(newval<this.constraints.min)){newval=this.constraints.min;}
return newval;},_onKeyPress:function(e){if((e.charOrCode==dojo.keys.HOME||e.charOrCode==dojo.keys.END)&&!e.ctrlKey&&!e.altKey){var value=e.charOrCode==dojo.keys.HOME?this.constraints["min"]:this.constraints["max"];if(value){this._setValueAttr(value,true);}
dojo.stopEvent(e);return false;}
else{return this.inherited(arguments);}}});}
if(!dojo._hasResource["dijit.form.CheckBox"]){dojo._hasResource["dijit.form.CheckBox"]=true;dojo.provide("dijit.form.CheckBox");dojo.declare("dijit.form.CheckBox",dijit.form.ToggleButton,{templateString:"<div class=\"dijitReset dijitInline\" waiRole=\"presentation\"\n\t><input\n\t \ttype=\"${type}\" name=\"${name}\"\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdojoAttachPoint=\"focusNode\"\n\t \tdojoAttachEvent=\"onmouseover:_onMouse,onmouseout:_onMouse,onclick:_onClick\"\n/></div>\n",baseClass:"dijitCheckBox",type:"checkbox",value:"on",_setValueAttr:function(newValue){if(typeof newValue=="string"){this.value=newValue;dojo.attr(this.focusNode,'value',newValue);newValue=true;}
if(this._created){this.attr('checked',newValue);}},_getValueAttr:function(){return(this.checked?this.value:false);},postMixInProperties:function(){if(this.value==""){this.value="on";}
this.inherited(arguments);},_fillContent:function(source){},reset:function(){this._hasBeenBlurred=false;this.attr('checked',this.params.checked||false);this.value=this.params.value||"on";dojo.attr(this.focusNode,'value',this.value);},_onFocus:function(){if(this.id){dojo.query("label[for='"+this.id+"']").addClass("dijitFocusedLabel");}},_onBlur:function(){if(this.id){dojo.query("label[for='"+this.id+"']").removeClass("dijitFocusedLabel");}}});dojo.declare("dijit.form.RadioButton",dijit.form.CheckBox,{type:"radio",baseClass:"dijitRadio",_setCheckedAttr:function(value){this.inherited(arguments);if(!this._created){return;}
if(value){var _this=this;dojo.query('INPUT[type=radio][name='+this.name+']',this.focusNode.form||dojo.doc).forEach(function(inputNode){if(inputNode!=_this.focusNode&&inputNode.form==_this.focusNode.form){var widget=dijit.getEnclosingWidget(inputNode);if(widget&&widget.checked){widget.attr('checked',false);}}});}},_clicked:function(e){if(!this.checked){this.attr('checked',true);}}});}
if(!dojo._hasResource["dojox.gfx._base"]){dojo._hasResource["dojox.gfx._base"]=true;dojo.provide("dojox.gfx._base");(function(){var g=dojox.gfx,b=g._base;g._hasClass=function(node,classStr){return((" "+node.getAttribute("className")+" ").indexOf(" "+classStr+" ")>=0);}
g._addClass=function(node,classStr){var cls=node.getAttribute("className");if((" "+cls+" ").indexOf(" "+classStr+" ")<0){node.setAttribute("className",cls+(cls?' ':'')+classStr);}}
g._removeClass=function(node,classStr){node.setAttribute("className",node.getAttribute("className").replace(new RegExp('(^|\\s+)'+classStr+'(\\s+|$)'),"$1$2"));}
b._getFontMeasurements=function(){var heights={'1em':0,'1ex':0,'100%':0,'12pt':0,'16px':0,'xx-small':0,'x-small':0,'small':0,'medium':0,'large':0,'x-large':0,'xx-large':0};if(dojo.isIE){dojo.doc.documentElement.style.fontSize="100%";}
var div=dojo.doc.createElement("div");div.style.position="absolute";div.style.left="-100px";div.style.top="0";div.style.width="30px";div.style.height="1000em";div.style.border="0";div.style.margin="0";div.style.padding="0";div.style.outline="0";div.style.lineHeight="1";div.style.overflow="hidden";dojo.body().appendChild(div);for(var p in heights){div.style.fontSize=p;heights[p]=Math.round(div.offsetHeight*12/16)*16/12/1000;}
dojo.body().removeChild(div);div=null;return heights;};var fontMeasurements=null;b._getCachedFontMeasurements=function(recalculate){if(recalculate||!fontMeasurements){fontMeasurements=b._getFontMeasurements();}
return fontMeasurements;};var measuringNode=null,empty={};b._getTextBox=function(text,style,className){var m;if(!measuringNode){m=measuringNode=dojo.doc.createElement("div");m.style.position="absolute";m.style.left="-10000px";m.style.top="0";dojo.body().appendChild(m);}else{m=measuringNode;}
m.className="";m.style.border="0";m.style.margin="0";m.style.padding="0";m.style.outline="0";if(arguments.length>1&&style){for(var i in style){if(i in empty){continue;}
m.style[i]=style[i];}}
if(arguments.length>2&&className){m.className=className;}
m.innerHTML=text;return dojo.marginBox(m);};var uniqueId=0;b._getUniqueId=function(){var id;do{id=dojo._scopeName+"Unique"+(++uniqueId);}while(dojo.byId(id));return id;};})();dojo.mixin(dojox.gfx,{defaultPath:{type:"path",path:""},defaultPolyline:{type:"polyline",points:[]},defaultRect:{type:"rect",x:0,y:0,width:100,height:100,r:0},defaultEllipse:{type:"ellipse",cx:0,cy:0,rx:200,ry:100},defaultCircle:{type:"circle",cx:0,cy:0,r:100},defaultLine:{type:"line",x1:0,y1:0,x2:100,y2:100},defaultImage:{type:"image",x:0,y:0,width:0,height:0,src:""},defaultText:{type:"text",x:0,y:0,text:"",align:"start",decoration:"none",rotated:false,kerning:true},defaultTextPath:{type:"textpath",text:"",align:"start",decoration:"none",rotated:false,kerning:true},defaultStroke:{type:"stroke",color:"black",style:"solid",width:1,cap:"butt",join:4},defaultLinearGradient:{type:"linear",x1:0,y1:0,x2:100,y2:100,colors:[{offset:0,color:"black"},{offset:1,color:"white"}]},defaultRadialGradient:{type:"radial",cx:0,cy:0,r:100,colors:[{offset:0,color:"black"},{offset:1,color:"white"}]},defaultPattern:{type:"pattern",x:0,y:0,width:0,height:0,src:""},defaultFont:{type:"font",style:"normal",variant:"normal",weight:"normal",size:"10pt",family:"serif"},normalizeColor:function(color){return(color instanceof dojo.Color)?color:new dojo.Color(color);},normalizeParameters:function(existed,update){if(update){var empty={};for(var x in existed){if(x in update&&!(x in empty)){existed[x]=update[x];}}}
return existed;},makeParameters:function(defaults,update){if(!update)return dojo.clone(defaults);var result={};for(var i in defaults){if(!(i in result)){result[i]=dojo.clone((i in update)?update[i]:defaults[i]);}}
return result;},formatNumber:function(x,addSpace){var val=x.toString();if(val.indexOf("e")>=0){val=x.toFixed(4);}else{var point=val.indexOf(".");if(point>=0&&val.length-point>5){val=x.toFixed(4);}}
if(x<0){return val;}
return addSpace?" "+val:val;},makeFontString:function(font){return font.style+" "+font.variant+" "+font.weight+" "+font.size+" "+font.family;},splitFontString:function(str){var font=dojo.clone(dojox.gfx.defaultFont);var t=str.split(/\s+/);do{if(t.length<5){break;}
font.style=t[0];font.varian=t[1];font.weight=t[2];var i=t[3].indexOf("/");font.size=i<0?t[3]:t[3].substring(0,i);var j=4;if(i<0){if(t[4]=="/"){j=6;break;}
if(t[4].substr(0,1)=="/"){j=5;break;}}
if(j+3>t.length){break;}
font.size=t[j];font.family=t[j+1];}while(false);return font;},cm_in_pt:72/2.54,mm_in_pt:7.2/2.54,px_in_pt:function(){return dojox.gfx._base._getCachedFontMeasurements()["12pt"]/12;},pt2px:function(len){return len*dojox.gfx.px_in_pt();},px2pt:function(len){return len/dojox.gfx.px_in_pt();},normalizedLength:function(len){if(len.length==0)return 0;if(len.length>2){var px_in_pt=dojox.gfx.px_in_pt();var val=parseFloat(len);switch(len.slice(-2)){case"px":return val;case"pt":return val*px_in_pt;case"in":return val*72*px_in_pt;case"pc":return val*12*px_in_pt;case"mm":return val*dojox.gfx.mm_in_pt*px_in_pt;case"cm":return val*dojox.gfx.cm_in_pt*px_in_pt;}}
return parseFloat(len);},pathVmlRegExp:/([A-Za-z]+)|(\d+(\.\d+)?)|(\.\d+)|(-\d+(\.\d+)?)|(-\.\d+)/g,pathSvgRegExp:/([A-Za-z])|(\d+(\.\d+)?)|(\.\d+)|(-\d+(\.\d+)?)|(-\.\d+)/g,equalSources:function(a,b){return a&&b&&a==b;}});}
if(!dojo._hasResource["dojox.gfx.shape"]){dojo._hasResource["dojox.gfx.shape"]=true;dojo.provide("dojox.gfx.shape");dojo.declare("dojox.gfx.Shape",null,{constructor:function(){this.rawNode=null;this.shape=null;this.matrix=null;this.fillStyle=null;this.strokeStyle=null;this.bbox=null;this.parent=null;this.parentMatrix=null;},getNode:function(){return this.rawNode;},getShape:function(){return this.shape;},getTransform:function(){return this.matrix;},getFill:function(){return this.fillStyle;},getStroke:function(){return this.strokeStyle;},getParent:function(){return this.parent;},getBoundingBox:function(){return this.bbox;},getTransformedBoundingBox:function(){var b=this.getBoundingBox();if(!b){return null;}
var m=this._getRealMatrix();var r=[];var g=dojox.gfx.matrix;r.push(g.multiplyPoint(m,b.x,b.y));r.push(g.multiplyPoint(m,b.x+b.width,b.y));r.push(g.multiplyPoint(m,b.x+b.width,b.y+b.height));r.push(g.multiplyPoint(m,b.x,b.y+b.height));return r;},getEventSource:function(){return this.rawNode;},setShape:function(shape){this.shape=dojox.gfx.makeParameters(this.shape,shape);this.bbox=null;return this;},setFill:function(fill){if(!fill){this.fillStyle=null;return this;}
var f=null;if(typeof(fill)=="object"&&"type"in fill){switch(fill.type){case"linear":f=dojox.gfx.makeParameters(dojox.gfx.defaultLinearGradient,fill);break;case"radial":f=dojox.gfx.makeParameters(dojox.gfx.defaultRadialGradient,fill);break;case"pattern":f=dojox.gfx.makeParameters(dojox.gfx.defaultPattern,fill);break;}}else{f=dojox.gfx.normalizeColor(fill);}
this.fillStyle=f;return this;},setStroke:function(stroke){if(!stroke){this.strokeStyle=null;return this;}
if(typeof stroke=="string"||dojo.isArray(stroke)||stroke instanceof dojo.Color){stroke={color:stroke};}
var s=this.strokeStyle=dojox.gfx.makeParameters(dojox.gfx.defaultStroke,stroke);s.color=dojox.gfx.normalizeColor(s.color);return this;},setTransform:function(matrix){this.matrix=dojox.gfx.matrix.clone(matrix?dojox.gfx.matrix.normalize(matrix):dojox.gfx.matrix.identity);return this._applyTransform();},_applyTransform:function(){return this;},moveToFront:function(){var p=this.getParent();if(p){p._moveChildToFront(this);this._moveToFront();}
return this;},moveToBack:function(){var p=this.getParent();if(p){p._moveChildToBack(this);this._moveToBack();}
return this;},_moveToFront:function(){},_moveToBack:function(){},applyRightTransform:function(matrix){return matrix?this.setTransform([this.matrix,matrix]):this;},applyLeftTransform:function(matrix){return matrix?this.setTransform([matrix,this.matrix]):this;},applyTransform:function(matrix){return matrix?this.setTransform([this.matrix,matrix]):this;},removeShape:function(silently){if(this.parent){this.parent.remove(this,silently);}
return this;},_setParent:function(parent,matrix){this.parent=parent;return this._updateParentMatrix(matrix);},_updateParentMatrix:function(matrix){this.parentMatrix=matrix?dojox.gfx.matrix.clone(matrix):null;return this._applyTransform();},_getRealMatrix:function(){var m=this.matrix;var p=this.parent;while(p){if(p.matrix){m=dojox.gfx.matrix.multiply(p.matrix,m);}
p=p.parent;}
return m;}});dojox.gfx.shape._eventsProcessing={connect:function(name,object,method){return arguments.length>2?dojo.connect(this.getEventSource(),name,object,method):dojo.connect(this.getEventSource(),name,object);},disconnect:function(token){dojo.disconnect(token);}};dojo.extend(dojox.gfx.Shape,dojox.gfx.shape._eventsProcessing);dojox.gfx.shape.Container={_init:function(){this.children=[];},add:function(shape){var oldParent=shape.getParent();if(oldParent){oldParent.remove(shape,true);}
this.children.push(shape);return shape._setParent(this,this._getRealMatrix());},remove:function(shape,silently){for(var i=0;i<this.children.length;++i){if(this.children[i]==shape){if(silently){}else{shape.parent=null;shape.parentMatrix=null;}
this.children.splice(i,1);break;}}
return this;},clear:function(){this.children=[];return this;},_moveChildToFront:function(shape){for(var i=0;i<this.children.length;++i){if(this.children[i]==shape){this.children.splice(i,1);this.children.push(shape);break;}}
return this;},_moveChildToBack:function(shape){for(var i=0;i<this.children.length;++i){if(this.children[i]==shape){this.children.splice(i,1);this.children.unshift(shape);break;}}
return this;}};dojo.declare("dojox.gfx.shape.Surface",null,{constructor:function(){this.rawNode=null;this._parent=null;this._nodes=[];this._events=[];},destroy:function(){dojo.forEach(this._nodes,dojo._destroyElement);this._nodes=[];dojo.forEach(this._events,dojo.disconnect);this._events=[];this.rawNode=null;if(dojo.isIE){while(this._parent.lastChild){dojo._destroyElement(this._parent.lastChild);}}else{this._parent.innerHTML="";}
this._parent=null;},getEventSource:function(){return this.rawNode;},_getRealMatrix:function(){return null;},isLoaded:true,onLoad:function(surface){},whenLoaded:function(context,method){var f=dojo.hitch(context,method);if(this.isLoaded){f(this);}else{var h=dojo.connect(this,"onLoad",function(surface){dojo.disconnect(h);f(surface);});}}});dojo.extend(dojox.gfx.shape.Surface,dojox.gfx.shape._eventsProcessing);dojo.declare("dojox.gfx.Point",null,{});dojo.declare("dojox.gfx.Rectangle",null,{});dojo.declare("dojox.gfx.shape.Rect",dojox.gfx.Shape,{constructor:function(rawNode){this.shape=dojo.clone(dojox.gfx.defaultRect);this.rawNode=rawNode;},getBoundingBox:function(){return this.shape;}});dojo.declare("dojox.gfx.shape.Ellipse",dojox.gfx.Shape,{constructor:function(rawNode){this.shape=dojo.clone(dojox.gfx.defaultEllipse);this.rawNode=rawNode;},getBoundingBox:function(){if(!this.bbox){var shape=this.shape;this.bbox={x:shape.cx-shape.rx,y:shape.cy-shape.ry,width:2*shape.rx,height:2*shape.ry};}
return this.bbox;}});dojo.declare("dojox.gfx.shape.Circle",dojox.gfx.Shape,{constructor:function(rawNode){this.shape=dojo.clone(dojox.gfx.defaultCircle);this.rawNode=rawNode;},getBoundingBox:function(){if(!this.bbox){var shape=this.shape;this.bbox={x:shape.cx-shape.r,y:shape.cy-shape.r,width:2*shape.r,height:2*shape.r};}
return this.bbox;}});dojo.declare("dojox.gfx.shape.Line",dojox.gfx.Shape,{constructor:function(rawNode){this.shape=dojo.clone(dojox.gfx.defaultLine);this.rawNode=rawNode;},getBoundingBox:function(){if(!this.bbox){var shape=this.shape;this.bbox={x:Math.min(shape.x1,shape.x2),y:Math.min(shape.y1,shape.y2),width:Math.abs(shape.x2-shape.x1),height:Math.abs(shape.y2-shape.y1)};}
return this.bbox;}});dojo.declare("dojox.gfx.shape.Polyline",dojox.gfx.Shape,{constructor:function(rawNode){this.shape=dojo.clone(dojox.gfx.defaultPolyline);this.rawNode=rawNode;},setShape:function(points,closed){if(points&&points instanceof Array){dojox.gfx.Shape.prototype.setShape.call(this,{points:points});if(closed&&this.shape.points.length){this.shape.points.push(this.shape.points[0]);}}else{dojox.gfx.Shape.prototype.setShape.call(this,points);}
return this;},getBoundingBox:function(){if(!this.bbox&&this.shape.points.length){var p=this.shape.points;var l=p.length;var t=p[0];var bbox={l:t.x,t:t.y,r:t.x,b:t.y};for(var i=1;i<l;++i){t=p[i];if(bbox.l>t.x)bbox.l=t.x;if(bbox.r<t.x)bbox.r=t.x;if(bbox.t>t.y)bbox.t=t.y;if(bbox.b<t.y)bbox.b=t.y;}
this.bbox={x:bbox.l,y:bbox.t,width:bbox.r-bbox.l,height:bbox.b-bbox.t};}
return this.bbox;}});dojo.declare("dojox.gfx.shape.Image",dojox.gfx.Shape,{constructor:function(rawNode){this.shape=dojo.clone(dojox.gfx.defaultImage);this.rawNode=rawNode;},getBoundingBox:function(){return this.shape;},setStroke:function(){return this;},setFill:function(){return this;}});dojo.declare("dojox.gfx.shape.Text",dojox.gfx.Shape,{constructor:function(rawNode){this.fontStyle=null;this.shape=dojo.clone(dojox.gfx.defaultText);this.rawNode=rawNode;},getFont:function(){return this.fontStyle;},setFont:function(newFont){this.fontStyle=typeof newFont=="string"?dojox.gfx.splitFontString(newFont):dojox.gfx.makeParameters(dojox.gfx.defaultFont,newFont);this._setFont();return this;}});dojox.gfx.shape.Creator={createShape:function(shape){switch(shape.type){case dojox.gfx.defaultPath.type:return this.createPath(shape);case dojox.gfx.defaultRect.type:return this.createRect(shape);case dojox.gfx.defaultCircle.type:return this.createCircle(shape);case dojox.gfx.defaultEllipse.type:return this.createEllipse(shape);case dojox.gfx.defaultLine.type:return this.createLine(shape);case dojox.gfx.defaultPolyline.type:return this.createPolyline(shape);case dojox.gfx.defaultImage.type:return this.createImage(shape);case dojox.gfx.defaultText.type:return this.createText(shape);case dojox.gfx.defaultTextPath.type:return this.createTextPath(shape);}
return null;},createGroup:function(){return this.createObject(dojox.gfx.Group);},createRect:function(rect){return this.createObject(dojox.gfx.Rect,rect);},createEllipse:function(ellipse){return this.createObject(dojox.gfx.Ellipse,ellipse);},createCircle:function(circle){return this.createObject(dojox.gfx.Circle,circle);},createLine:function(line){return this.createObject(dojox.gfx.Line,line);},createPolyline:function(points){return this.createObject(dojox.gfx.Polyline,points);},createImage:function(image){return this.createObject(dojox.gfx.Image,image);},createText:function(text){return this.createObject(dojox.gfx.Text,text);},createPath:function(path){return this.createObject(dojox.gfx.Path,path);},createTextPath:function(text){return this.createObject(dojox.gfx.TextPath,{}).setText(text);},createObject:function(shapeType,rawShape){return null;}};}
if(!dojo._hasResource["dojox.gfx.path"]){dojo._hasResource["dojox.gfx.path"]=true;dojo.provide("dojox.gfx.path");dojo.declare("dojox.gfx.path.Path",dojox.gfx.Shape,{constructor:function(rawNode){this.shape=dojo.clone(dojox.gfx.defaultPath);this.segments=[];this.absolute=true;this.last={};this.rawNode=rawNode;},setAbsoluteMode:function(mode){this.absolute=typeof mode=="string"?(mode=="absolute"):mode;return this;},getAbsoluteMode:function(){return this.absolute;},getBoundingBox:function(){return(this.bbox&&("l"in this.bbox))?{x:this.bbox.l,y:this.bbox.t,width:this.bbox.r-this.bbox.l,height:this.bbox.b-this.bbox.t}:null;},getLastPosition:function(){return"x"in this.last?this.last:null;},_updateBBox:function(x,y){if(this.bbox&&("l"in this.bbox)){if(this.bbox.l>x)this.bbox.l=x;if(this.bbox.r<x)this.bbox.r=x;if(this.bbox.t>y)this.bbox.t=y;if(this.bbox.b<y)this.bbox.b=y;}else{this.bbox={l:x,b:y,r:x,t:y};}},_updateWithSegment:function(segment){var n=segment.args,l=n.length;switch(segment.action){case"M":case"L":case"C":case"S":case"Q":case"T":for(var i=0;i<l;i+=2){this._updateBBox(n[i],n[i+1]);}
this.last.x=n[l-2];this.last.y=n[l-1];this.absolute=true;break;case"H":for(var i=0;i<l;++i){this._updateBBox(n[i],this.last.y);}
this.last.x=n[l-1];this.absolute=true;break;case"V":for(var i=0;i<l;++i){this._updateBBox(this.last.x,n[i]);}
this.last.y=n[l-1];this.absolute=true;break;case"m":var start=0;if(!("x"in this.last)){this._updateBBox(this.last.x=n[0],this.last.y=n[1]);start=2;}
for(var i=start;i<l;i+=2){this._updateBBox(this.last.x+=n[i],this.last.y+=n[i+1]);}
this.absolute=false;break;case"l":case"t":for(var i=0;i<l;i+=2){this._updateBBox(this.last.x+=n[i],this.last.y+=n[i+1]);}
this.absolute=false;break;case"h":for(var i=0;i<l;++i){this._updateBBox(this.last.x+=n[i],this.last.y);}
this.absolute=false;break;case"v":for(var i=0;i<l;++i){this._updateBBox(this.last.x,this.last.y+=n[i]);}
this.absolute=false;break;case"c":for(var i=0;i<l;i+=6){this._updateBBox(this.last.x+n[i],this.last.y+n[i+1]);this._updateBBox(this.last.x+n[i+2],this.last.y+n[i+3]);this._updateBBox(this.last.x+=n[i+4],this.last.y+=n[i+5]);}
this.absolute=false;break;case"s":case"q":for(var i=0;i<l;i+=4){this._updateBBox(this.last.x+n[i],this.last.y+n[i+1]);this._updateBBox(this.last.x+=n[i+2],this.last.y+=n[i+3]);}
this.absolute=false;break;case"A":for(var i=0;i<l;i+=7){this._updateBBox(n[i+5],n[i+6]);}
this.last.x=n[l-2];this.last.y=n[l-1];this.absolute=true;break;case"a":for(var i=0;i<l;i+=7){this._updateBBox(this.last.x+=n[i+5],this.last.y+=n[i+6]);}
this.absolute=false;break;}
var path=[segment.action];for(var i=0;i<l;++i){path.push(dojox.gfx.formatNumber(n[i],true));}
if(typeof this.shape.path=="string"){this.shape.path+=path.join("");}else{Array.prototype.push.apply(this.shape.path,path);}},_validSegments:{m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},_pushSegment:function(action,args){var group=this._validSegments[action.toLowerCase()];if(typeof group=="number"){if(group){if(args.length>=group){var segment={action:action,args:args.slice(0,args.length-args.length%group)};this.segments.push(segment);this._updateWithSegment(segment);}}else{var segment={action:action,args:[]};this.segments.push(segment);this._updateWithSegment(segment);}}},_collectArgs:function(array,args){for(var i=0;i<args.length;++i){var t=args[i];if(typeof t=="boolean"){array.push(t?1:0);}else if(typeof t=="number"){array.push(t);}else if(t instanceof Array){this._collectArgs(array,t);}else if("x"in t&&"y"in t){array.push(t.x,t.y);}}},moveTo:function(){var args=[];this._collectArgs(args,arguments);this._pushSegment(this.absolute?"M":"m",args);return this;},lineTo:function(){var args=[];this._collectArgs(args,arguments);this._pushSegment(this.absolute?"L":"l",args);return this;},hLineTo:function(){var args=[];this._collectArgs(args,arguments);this._pushSegment(this.absolute?"H":"h",args);return this;},vLineTo:function(){var args=[];this._collectArgs(args,arguments);this._pushSegment(this.absolute?"V":"v",args);return this;},curveTo:function(){var args=[];this._collectArgs(args,arguments);this._pushSegment(this.absolute?"C":"c",args);return this;},smoothCurveTo:function(){var args=[];this._collectArgs(args,arguments);this._pushSegment(this.absolute?"S":"s",args);return this;},qCurveTo:function(){var args=[];this._collectArgs(args,arguments);this._pushSegment(this.absolute?"Q":"q",args);return this;},qSmoothCurveTo:function(){var args=[];this._collectArgs(args,arguments);this._pushSegment(this.absolute?"T":"t",args);return this;},arcTo:function(){var args=[];this._collectArgs(args,arguments);this._pushSegment(this.absolute?"A":"a",args);return this;},closePath:function(){this._pushSegment("Z",[]);return this;},_setPath:function(path){var p=dojo.isArray(path)?path:path.match(dojox.gfx.pathSvgRegExp);this.segments=[];this.absolute=true;this.bbox={};this.last={};if(!p)return;var action="",args=[],l=p.length;for(var i=0;i<l;++i){var t=p[i],x=parseFloat(t);if(isNaN(x)){if(action){this._pushSegment(action,args);}
args=[];action=t;}else{args.push(x);}}
this._pushSegment(action,args);},setShape:function(newShape){dojox.gfx.Shape.prototype.setShape.call(this,typeof newShape=="string"?{path:newShape}:newShape);var path=this.shape.path;this.shape.path=[];this._setPath(path);this.shape.path=this.shape.path.join("");return this;},_2PI:Math.PI*2});dojo.declare("dojox.gfx.path.TextPath",dojox.gfx.path.Path,{constructor:function(rawNode){if(!("text"in this)){this.text=dojo.clone(dojox.gfx.defaultTextPath);}
if(!("fontStyle"in this)){this.fontStyle=dojo.clone(dojox.gfx.defaultFont);}},getText:function(){return this.text;},setText:function(newText){this.text=dojox.gfx.makeParameters(this.text,typeof newText=="string"?{text:newText}:newText);this._setText();return this;},getFont:function(){return this.fontStyle;},setFont:function(newFont){this.fontStyle=typeof newFont=="string"?dojox.gfx.splitFontString(newFont):dojox.gfx.makeParameters(dojox.gfx.defaultFont,newFont);this._setFont();return this;}});}
if(!dojo._hasResource["dojox.gfx.svg"]){dojo._hasResource["dojox.gfx.svg"]=true;dojo.provide("dojox.gfx.svg");dojox.gfx.svg.xmlns={xlink:"http://www.w3.org/1999/xlink",svg:"http://www.w3.org/2000/svg"};dojox.gfx.svg.getRef=function(name){if(!name||name=="none")return null;if(name.match(/^url\(#.+\)$/)){return dojo.byId(name.slice(5,-1));}
if(name.match(/^#dojoUnique\d+$/)){return dojo.byId(name.slice(1));}
return null;};dojox.gfx.svg.dasharray={solid:"none",shortdash:[4,1],shortdot:[1,1],shortdashdot:[4,1,1,1],shortdashdotdot:[4,1,1,1,1,1],dot:[1,3],dash:[4,3],longdash:[8,3],dashdot:[4,3,1,3],longdashdot:[8,3,1,3],longdashdotdot:[8,3,1,3,1,3]};dojo.extend(dojox.gfx.Shape,{setFill:function(fill){if(!fill){this.fillStyle=null;this.rawNode.setAttribute("fill","none");this.rawNode.setAttribute("fill-opacity",0);return this;}
var f;var setter=function(x){this.setAttribute(x,f[x].toFixed(8));};if(typeof(fill)=="object"&&"type"in fill){switch(fill.type){case"linear":f=dojox.gfx.makeParameters(dojox.gfx.defaultLinearGradient,fill);var gradient=this._setFillObject(f,"linearGradient");dojo.forEach(["x1","y1","x2","y2"],setter,gradient);break;case"radial":f=dojox.gfx.makeParameters(dojox.gfx.defaultRadialGradient,fill);var gradient=this._setFillObject(f,"radialGradient");dojo.forEach(["cx","cy","r"],setter,gradient);break;case"pattern":f=dojox.gfx.makeParameters(dojox.gfx.defaultPattern,fill);var pattern=this._setFillObject(f,"pattern");dojo.forEach(["x","y","width","height"],setter,pattern);break;}
this.fillStyle=f;return this;}
var f=dojox.gfx.normalizeColor(fill);this.fillStyle=f;this.rawNode.setAttribute("fill",f.toCss());this.rawNode.setAttribute("fill-opacity",f.a);this.rawNode.setAttribute("fill-rule","evenodd");return this;},setStroke:function(stroke){if(!stroke){this.strokeStyle=null;this.rawNode.setAttribute("stroke","none");this.rawNode.setAttribute("stroke-opacity",0);return this;}
if(typeof stroke=="string"||dojo.isArray(stroke)||stroke instanceof dojo.Color){stroke={color:stroke};}
var s=this.strokeStyle=dojox.gfx.makeParameters(dojox.gfx.defaultStroke,stroke);s.color=dojox.gfx.normalizeColor(s.color);var rn=this.rawNode;if(s){rn.setAttribute("stroke",s.color.toCss());rn.setAttribute("stroke-opacity",s.color.a);rn.setAttribute("stroke-width",s.width);rn.setAttribute("stroke-linecap",s.cap);if(typeof s.join=="number"){rn.setAttribute("stroke-linejoin","miter");rn.setAttribute("stroke-miterlimit",s.join);}else{rn.setAttribute("stroke-linejoin",s.join);}
var da=s.style.toLowerCase();if(da in dojox.gfx.svg.dasharray){da=dojox.gfx.svg.dasharray[da];}
if(da instanceof Array){da=dojo.clone(da);for(var i=0;i<da.length;++i){da[i]*=s.width;}
if(s.cap!="butt"){for(var i=0;i<da.length;i+=2){da[i]-=s.width;if(da[i]<1){da[i]=1;}}
for(var i=1;i<da.length;i+=2){da[i]+=s.width;}}
da=da.join(",");}
rn.setAttribute("stroke-dasharray",da);rn.setAttribute("dojoGfxStrokeStyle",s.style);}
return this;},_getParentSurface:function(){var surface=this.parent;for(;surface&&!(surface instanceof dojox.gfx.Surface);surface=surface.parent);return surface;},_setFillObject:function(f,nodeType){var svgns=dojox.gfx.svg.xmlns.svg;this.fillStyle=f;var surface=this._getParentSurface(),defs=surface.defNode,fill=this.rawNode.getAttribute("fill"),ref=dojox.gfx.svg.getRef(fill);if(ref){fill=ref;if(fill.tagName.toLowerCase()!=nodeType.toLowerCase()){var id=fill.id;fill.parentNode.removeChild(fill);fill=document.createElementNS(svgns,nodeType);fill.setAttribute("id",id);defs.appendChild(fill);}else{while(fill.childNodes.length){fill.removeChild(fill.lastChild);}}}else{fill=document.createElementNS(svgns,nodeType);fill.setAttribute("id",dojox.gfx._base._getUniqueId());defs.appendChild(fill);}
if(nodeType=="pattern"){if(dojo.isSafari){fill.setAttributeNS(null,"patternUnits","userSpaceOnUse");}else{fill.setAttribute("patternUnits","userSpaceOnUse");}
var img=document.createElementNS(svgns,"image");img.setAttribute("x",0);img.setAttribute("y",0);img.setAttribute("width",f.width.toFixed(8));img.setAttribute("height",f.height.toFixed(8));img.setAttributeNS(dojox.gfx.svg.xmlns.xlink,"href",f.src);fill.appendChild(img);}else{if(dojo.isSafari){fill.setAttributeNS(null,"gradientUnits","userSpaceOnUse");}else{fill.setAttribute("gradientUnits","userSpaceOnUse");}
for(var i=0;i<f.colors.length;++i){var c=f.colors[i],t=document.createElementNS(svgns,"stop"),cc=c.color=dojox.gfx.normalizeColor(c.color);t.setAttribute("offset",c.offset.toFixed(8));t.setAttribute("stop-color",cc.toCss());t.setAttribute("stop-opacity",cc.a);fill.appendChild(t);}}
this.rawNode.setAttribute("fill","url(#"+fill.getAttribute("id")+")");this.rawNode.removeAttribute("fill-opacity");this.rawNode.setAttribute("fill-rule","evenodd");return fill;},_applyTransform:function(){var matrix=this.matrix;if(matrix){var tm=this.matrix;this.rawNode.setAttribute("transform","matrix("+
tm.xx.toFixed(8)+","+tm.yx.toFixed(8)+","+
tm.xy.toFixed(8)+","+tm.yy.toFixed(8)+","+
tm.dx.toFixed(8)+","+tm.dy.toFixed(8)+")");}else{this.rawNode.removeAttribute("transform");}
return this;},setRawNode:function(rawNode){var r=this.rawNode=rawNode;r.setAttribute("fill","none");r.setAttribute("fill-opacity",0);r.setAttribute("stroke","none");r.setAttribute("stroke-opacity",0);r.setAttribute("stroke-width",1);r.setAttribute("stroke-linecap","butt");r.setAttribute("stroke-linejoin","miter");r.setAttribute("stroke-miterlimit",4);},setShape:function(newShape){this.shape=dojox.gfx.makeParameters(this.shape,newShape);for(var i in this.shape){if(i!="type"){this.rawNode.setAttribute(i,this.shape[i]);}}
return this;},_moveToFront:function(){this.rawNode.parentNode.appendChild(this.rawNode);return this;},_moveToBack:function(){this.rawNode.parentNode.insertBefore(this.rawNode,this.rawNode.parentNode.firstChild);return this;}});dojo.declare("dojox.gfx.Group",dojox.gfx.Shape,{constructor:function(){dojox.gfx.svg.Container._init.call(this);},setRawNode:function(rawNode){this.rawNode=rawNode;}});dojox.gfx.Group.nodeType="g";dojo.declare("dojox.gfx.Rect",dojox.gfx.shape.Rect,{setShape:function(newShape){this.shape=dojox.gfx.makeParameters(this.shape,newShape);this.bbox=null;for(var i in this.shape){if(i!="type"&&i!="r"){this.rawNode.setAttribute(i,this.shape[i]);}}
if(this.shape.r){this.rawNode.setAttribute("ry",this.shape.r);this.rawNode.setAttribute("rx",this.shape.r);}
return this;}});dojox.gfx.Rect.nodeType="rect";dojox.gfx.Ellipse=dojox.gfx.shape.Ellipse;dojox.gfx.Ellipse.nodeType="ellipse";dojox.gfx.Circle=dojox.gfx.shape.Circle;dojox.gfx.Circle.nodeType="circle";dojox.gfx.Line=dojox.gfx.shape.Line;dojox.gfx.Line.nodeType="line";dojo.declare("dojox.gfx.Polyline",dojox.gfx.shape.Polyline,{setShape:function(points,closed){if(points&&points instanceof Array){this.shape=dojox.gfx.makeParameters(this.shape,{points:points});if(closed&&this.shape.points.length){this.shape.points.push(this.shape.points[0]);}}else{this.shape=dojox.gfx.makeParameters(this.shape,points);}
this.box=null;var attr=[],p=this.shape.points;for(var i=0;i<p.length;++i){if(typeof p[i]=="number"){attr.push(p[i].toFixed(8));}else{attr.push(p[i].x.toFixed(8));attr.push(p[i].y.toFixed(8));}}
this.rawNode.setAttribute("points",attr.join(" "));return this;}});dojox.gfx.Polyline.nodeType="polyline";dojo.declare("dojox.gfx.Image",dojox.gfx.shape.Image,{setShape:function(newShape){this.shape=dojox.gfx.makeParameters(this.shape,newShape);this.bbox=null;var rawNode=this.rawNode;for(var i in this.shape){if(i!="type"&&i!="src"){rawNode.setAttribute(i,this.shape[i]);}}
rawNode.setAttributeNS(dojox.gfx.svg.xmlns.xlink,"href",this.shape.src);return this;}});dojox.gfx.Image.nodeType="image";dojo.declare("dojox.gfx.Text",dojox.gfx.shape.Text,{setShape:function(newShape){this.shape=dojox.gfx.makeParameters(this.shape,newShape);this.bbox=null;var r=this.rawNode,s=this.shape;r.setAttribute("x",s.x);r.setAttribute("y",s.y);r.setAttribute("text-anchor",s.align);r.setAttribute("text-decoration",s.decoration);r.setAttribute("rotate",s.rotated?90:0);r.setAttribute("kerning",s.kerning?"auto":0);r.setAttribute("text-rendering","optimizeLegibility");r.textContent=s.text;return this;},getTextWidth:function(){var rawNode=this.rawNode,oldParent=rawNode.parentNode,_measurementNode=rawNode.cloneNode(true);_measurementNode.style.visibility="hidden";var _width=0,_text=_measurementNode.firstChild.nodeValue;oldParent.appendChild(_measurementNode);if(_text!=""){while(!_width){_width=parseInt(_measurementNode.getBBox().width);}}
oldParent.removeChild(_measurementNode);return _width;}});dojox.gfx.Text.nodeType="text";dojo.declare("dojox.gfx.Path",dojox.gfx.path.Path,{_updateWithSegment:function(segment){dojox.gfx.Path.superclass._updateWithSegment.apply(this,arguments);if(typeof(this.shape.path)=="string"){this.rawNode.setAttribute("d",this.shape.path);}},setShape:function(newShape){dojox.gfx.Path.superclass.setShape.apply(this,arguments);this.rawNode.setAttribute("d",this.shape.path);return this;}});dojox.gfx.Path.nodeType="path";dojo.declare("dojox.gfx.TextPath",dojox.gfx.path.TextPath,{_updateWithSegment:function(segment){dojox.gfx.Path.superclass._updateWithSegment.apply(this,arguments);this._setTextPath();},setShape:function(newShape){dojox.gfx.Path.superclass.setShape.apply(this,arguments);this._setTextPath();return this;},_setTextPath:function(){if(typeof this.shape.path!="string"){return;}
var r=this.rawNode;if(!r.firstChild){var tp=document.createElementNS(dojox.gfx.svg.xmlns.svg,"textPath"),tx=document.createTextNode("");tp.appendChild(tx);r.appendChild(tp);}
var ref=r.firstChild.getAttributeNS(dojox.gfx.svg.xmlns.xlink,"href"),path=ref&&dojox.gfx.svg.getRef(ref);if(!path){var surface=this._getParentSurface();if(surface){var defs=surface.defNode;path=document.createElementNS(dojox.gfx.svg.xmlns.svg,"path");var id=dojox.gfx._base._getUniqueId();path.setAttribute("id",id);defs.appendChild(path);r.firstChild.setAttributeNS(dojox.gfx.svg.xmlns.xlink,"href","#"+id);}}
if(path){path.setAttribute("d",this.shape.path);}},_setText:function(){var r=this.rawNode;if(!r.firstChild){var tp=document.createElementNS(dojox.gfx.svg.xmlns.svg,"textPath"),tx=document.createTextNode("");tp.appendChild(tx);r.appendChild(tp);}
r=r.firstChild;var t=this.text;r.setAttribute("alignment-baseline","middle");switch(t.align){case"middle":r.setAttribute("text-anchor","middle");r.setAttribute("startOffset","50%");break;case"end":r.setAttribute("text-anchor","end");r.setAttribute("startOffset","100%");break;default:r.setAttribute("text-anchor","start");r.setAttribute("startOffset","0%");break;}
r.setAttribute("baseline-shift","0.5ex");r.setAttribute("text-decoration",t.decoration);r.setAttribute("rotate",t.rotated?90:0);r.setAttribute("kerning",t.kerning?"auto":0);r.firstChild.data=t.text;}});dojox.gfx.TextPath.nodeType="text";dojo.declare("dojox.gfx.Surface",dojox.gfx.shape.Surface,{constructor:function(){dojox.gfx.svg.Container._init.call(this);},destroy:function(){this.defNode=null;this.inherited(arguments);},setDimensions:function(width,height){if(!this.rawNode){return this;}
this.rawNode.setAttribute("width",width);this.rawNode.setAttribute("height",height);return this;},getDimensions:function(){return this.rawNode?{width:this.rawNode.getAttribute("width"),height:this.rawNode.getAttribute("height")}:null;}});dojox.gfx.createSurface=function(parentNode,width,height){var s=new dojox.gfx.Surface();s.rawNode=document.createElementNS(dojox.gfx.svg.xmlns.svg,"svg");s.rawNode.setAttribute("width",width);s.rawNode.setAttribute("height",height);var defNode=document.createElementNS(dojox.gfx.svg.xmlns.svg,"defs");s.rawNode.appendChild(defNode);s.defNode=defNode;s._parent=dojo.byId(parentNode);s._parent.appendChild(s.rawNode);return s;};dojox.gfx.svg.Font={_setFont:function(){var f=this.fontStyle;this.rawNode.setAttribute("font-style",f.style);this.rawNode.setAttribute("font-variant",f.variant);this.rawNode.setAttribute("font-weight",f.weight);this.rawNode.setAttribute("font-size",f.size);this.rawNode.setAttribute("font-family",f.family);}};dojox.gfx.svg.Container={_init:function(){dojox.gfx.shape.Container._init.call(this);},add:function(shape){if(this!=shape.getParent()){this.rawNode.appendChild(shape.rawNode);dojox.gfx.shape.Container.add.apply(this,arguments);}
return this;},remove:function(shape,silently){if(this==shape.getParent()){if(this.rawNode==shape.rawNode.parentNode){this.rawNode.removeChild(shape.rawNode);}
dojox.gfx.shape.Container.remove.apply(this,arguments);}
return this;},clear:function(){var r=this.rawNode;while(r.lastChild){r.removeChild(r.lastChild);}
var d=this.defNode;if(d){while(d.lastChild){d.removeChild(d.lastChild);}
r.appendChild(d);}
return dojox.gfx.shape.Container.clear.apply(this,arguments);},_moveChildToFront:dojox.gfx.shape.Container._moveChildToFront,_moveChildToBack:dojox.gfx.shape.Container._moveChildToBack};dojo.mixin(dojox.gfx.shape.Creator,{createObject:function(shapeType,rawShape){if(!this.rawNode){return null;}
var shape=new shapeType(),node=document.createElementNS(dojox.gfx.svg.xmlns.svg,shapeType.nodeType);shape.setRawNode(node);this.rawNode.appendChild(node);shape.setShape(rawShape);this.add(shape);return shape;}});dojo.extend(dojox.gfx.Text,dojox.gfx.svg.Font);dojo.extend(dojox.gfx.TextPath,dojox.gfx.svg.Font);dojo.extend(dojox.gfx.Group,dojox.gfx.svg.Container);dojo.extend(dojox.gfx.Group,dojox.gfx.shape.Creator);dojo.extend(dojox.gfx.Surface,dojox.gfx.svg.Container);dojo.extend(dojox.gfx.Surface,dojox.gfx.shape.Creator);}
if(!dojo._hasResource["dojox.html.metrics"]){dojo._hasResource["dojox.html.metrics"]=true;dojo.provide("dojox.html.metrics");(function(){var dhm=dojox.html.metrics;dhm.getFontMeasurements=function(){var heights={'1em':0,'1ex':0,'100%':0,'12pt':0,'16px':0,'xx-small':0,'x-small':0,'small':0,'medium':0,'large':0,'x-large':0,'xx-large':0};if(dojo.isIE){dojo.doc.documentElement.style.fontSize="100%";}
var div=dojo.doc.createElement("div");var ds=div.style;ds.position="absolute";ds.left="-100px";ds.top="0";ds.width="30px";ds.height="1000em";ds.border="0";ds.margin="0";ds.padding="0";ds.outline="0";ds.lineHeight="1";ds.overflow="hidden";dojo.body().appendChild(div);for(var p in heights){ds.fontSize=p;heights[p]=Math.round(div.offsetHeight*12/16)*16/12/1000;}
dojo.body().removeChild(div);div=null;return heights;};var fontMeasurements=null;dhm.getCachedFontMeasurements=function(recalculate){if(recalculate||!fontMeasurements){fontMeasurements=dhm.getFontMeasurements();}
return fontMeasurements;};var measuringNode=null,empty={};dhm.getTextBox=function(text,style,className){var m;if(!measuringNode){m=measuringNode=dojo.doc.createElement("div");m.style.position="absolute";m.style.left="-10000px";m.style.top="0";dojo.body().appendChild(m);}else{m=measuringNode;}
m.className="";m.style.border="0";m.style.margin="0";m.style.padding="0";m.style.outline="0";if(arguments.length>1&&style){for(var i in style){if(i in empty){continue;}
m.style[i]=style[i];}}
if(arguments.length>2&&className){m.className=className;}
m.innerHTML=text;return dojo.marginBox(m);};var scroll={w:16,h:16};dhm.getScrollbar=function(){return{w:scroll.w,h:scroll.h};};dhm._fontResizeNode=null;dhm.initOnFontResize=function(interval){var f=dhm._fontResizeNode=dojo.doc.createElement("iframe");var fs=f.style;fs.position="absolute";fs.width="5em";fs.height="10em";fs.top="-10000px";dojo.body().appendChild(f);if(dojo.isIE){f.onreadystatechange=function(){if(f.contentWindow.document.readyState=="complete"){f.onresize=Function('window.parent.'+dojox._scopeName+'.html.metrics._fontresize()');}};}else{f.onload=function(){f.contentWindow.onresize=Function('window.parent.'+dojox._scopeName+'.html.metrics._fontresize()');};}
dhm.initOnFontResize=function(){};};dhm.onFontResize=function(){};dhm._fontresize=function(){dhm.onFontResize();}
dojo.addOnLoad(function(){try{var n=dojo.doc.createElement("div");n.style.cssText="top:0;left:0;width:100px;height:100px;overflow:scroll;position:absolute;visibility:hidden;";dojo.body().appendChild(n);scroll.w=n.offsetWidth-n.clientWidth;scroll.h=n.offsetHeight-n.clientHeight;dojo.body().removeChild(n);delete n;}catch(e){}
if("fontSizeWatch"in dojo.config&&!!dojo.config.fontSizeWatch){dhm.initOnFontResize();}});})();}
if(!dojo._hasResource["dojox.grid.util"]){dojo._hasResource["dojox.grid.util"]=true;dojo.provide("dojox.grid.util");(function(){var dgu=dojox.grid.util;dgu.na='...';dgu.fire=function(ob,ev,args){var fn=ob&&ev&&ob[ev];return fn&&(args?fn.apply(ob,args):ob[ev]());};dgu.setStyleHeightPx=function(inElement,inHeight){if(inHeight>=0){var s=inElement.style;var v=inHeight+'px';if(inElement&&s['height']!=v){s['height']=v;}}};dgu.mouseEvents=['mouseover','mouseout','mousedown','mouseup','click','dblclick','contextmenu'];dgu.keyEvents=['keyup','keydown','keypress'];dgu.funnelEvents=function(inNode,inObject,inMethod,inEvents){var evts=(inEvents?inEvents:dgu.mouseEvents.concat(dgu.keyEvents));for(var i=0,l=evts.length;i<l;i++){inObject.connect(inNode,'on'+evts[i],inMethod);}},dgu.removeNode=function(inNode){inNode=dojo.byId(inNode);inNode&&inNode.parentNode&&inNode.parentNode.removeChild(inNode);return inNode;};dgu.arrayCompare=function(inA,inB){for(var i=0,l=inA.length;i<l;i++){if(inA[i]!=inB[i]){return false;}}
return(inA.length==inB.length);};dgu.arrayInsert=function(inArray,inIndex,inValue){if(inArray.length<=inIndex){inArray[inIndex]=inValue;}else{inArray.splice(inIndex,0,inValue);}};dgu.arrayRemove=function(inArray,inIndex){inArray.splice(inIndex,1);};dgu.arraySwap=function(inArray,inI,inJ){var cache=inArray[inI];inArray[inI]=inArray[inJ];inArray[inJ]=cache;};})();}
if(!dojo._hasResource["dojox.grid._Scroller"]){dojo._hasResource["dojox.grid._Scroller"]=true;dojo.provide("dojox.grid._Scroller");(function(){var indexInParent=function(inNode){var i=0,n,p=inNode.parentNode;while((n=p.childNodes[i++])){if(n==inNode){return i-1;}}
return-1;};var cleanNode=function(inNode){if(!inNode){return;}
var filter=function(inW){return inW.domNode&&dojo.isDescendant(inW.domNode,inNode,true);}
var ws=dijit.registry.filter(filter);for(var i=0,w;(w=ws[i]);i++){w.destroy();}
delete ws;};var getTagName=function(inNodeOrId){var node=dojo.byId(inNodeOrId);return(node&&node.tagName?node.tagName.toLowerCase():'');};var nodeKids=function(inNode,inTag){var result=[];var i=0,n;while((n=inNode.childNodes[i++])){if(getTagName(n)==inTag){result.push(n);}}
return result;};var divkids=function(inNode){return nodeKids(inNode,'div');};dojo.declare("dojox.grid._Scroller",null,{constructor:function(inContentNodes){this.setContentNodes(inContentNodes);this.pageHeights=[];this.pageNodes=[];this.stack=[];},rowCount:0,defaultRowHeight:32,keepRows:100,contentNode:null,scrollboxNode:null,defaultPageHeight:0,keepPages:10,pageCount:0,windowHeight:0,firstVisibleRow:0,lastVisibleRow:0,averageRowHeight:0,page:0,pageTop:0,init:function(inRowCount,inKeepRows,inRowsPerPage){switch(arguments.length){case 3:this.rowsPerPage=inRowsPerPage;case 2:this.keepRows=inKeepRows;case 1:this.rowCount=inRowCount;}
this.defaultPageHeight=this.defaultRowHeight*this.rowsPerPage;this.pageCount=this._getPageCount(this.rowCount,this.rowsPerPage);this.setKeepInfo(this.keepRows);this.invalidate();if(this.scrollboxNode){this.scrollboxNode.scrollTop=0;this.scroll(0);this.scrollboxNode.onscroll=dojo.hitch(this,'onscroll');}},_getPageCount:function(rowCount,rowsPerPage){return rowCount?(Math.ceil(rowCount/rowsPerPage)||1):0;},destroy:function(){this.invalidateNodes();delete this.contentNodes;delete this.contentNode;delete this.scrollboxNode;},setKeepInfo:function(inKeepRows){this.keepRows=inKeepRows;this.keepPages=!this.keepRows?this.keepRows:Math.max(Math.ceil(this.keepRows/this.rowsPerPage),2);},setContentNodes:function(inNodes){this.contentNodes=inNodes;this.colCount=(this.contentNodes?this.contentNodes.length:0);this.pageNodes=[];for(var i=0;i<this.colCount;i++){this.pageNodes[i]=[];}},getDefaultNodes:function(){return this.pageNodes[0]||[];},invalidate:function(){this.invalidateNodes();this.pageHeights=[];this.height=(this.pageCount?(this.pageCount-1)*this.defaultPageHeight+this.calcLastPageHeight():0);this.resize();},updateRowCount:function(inRowCount){this.invalidateNodes();this.rowCount=inRowCount;var oldPageCount=this.pageCount;this.pageCount=this._getPageCount(this.rowCount,this.rowsPerPage);if(this.pageCount<oldPageCount){for(var i=oldPageCount-1;i>=this.pageCount;i--){this.height-=this.getPageHeight(i);delete this.pageHeights[i]}}else if(this.pageCount>oldPageCount){this.height+=this.defaultPageHeight*(this.pageCount-oldPageCount-1)+this.calcLastPageHeight();}
this.resize();},pageExists:function(inPageIndex){return Boolean(this.getDefaultPageNode(inPageIndex));},measurePage:function(inPageIndex){var n=this.getDefaultPageNode(inPageIndex);return(n&&n.innerHTML)?n.offsetHeight:0;},positionPage:function(inPageIndex,inPos){for(var i=0;i<this.colCount;i++){this.pageNodes[i][inPageIndex].style.top=inPos+'px';}},repositionPages:function(inPageIndex){var nodes=this.getDefaultNodes();var last=0;for(var i=0;i<this.stack.length;i++){last=Math.max(this.stack[i],last);}
var n=nodes[inPageIndex];var y=(n?this.getPageNodePosition(n)+this.getPageHeight(inPageIndex):0);for(var p=inPageIndex+1;p<=last;p++){n=nodes[p];if(n){if(this.getPageNodePosition(n)==y){return;}
this.positionPage(p,y);}
y+=this.getPageHeight(p);}},installPage:function(inPageIndex){for(var i=0;i<this.colCount;i++){this.contentNodes[i].appendChild(this.pageNodes[i][inPageIndex]);}},preparePage:function(inPageIndex,inPos,inReuseNode){var p=(inReuseNode?this.popPage():null);for(var i=0;i<this.colCount;i++){var nodes=this.pageNodes[i];var new_p=(p===null?this.createPageNode():this.invalidatePageNode(p,nodes));new_p.pageIndex=inPageIndex;new_p.id=(this._pageIdPrefix||"")+'page-'+inPageIndex;nodes[inPageIndex]=new_p;}},renderPage:function(inPageIndex){var nodes=[];for(var i=0;i<this.colCount;i++){nodes[i]=this.pageNodes[i][inPageIndex];}
for(var i=0,j=inPageIndex*this.rowsPerPage;(i<this.rowsPerPage)&&(j<this.rowCount);i++,j++){this.renderRow(j,nodes);}},removePage:function(inPageIndex){for(var i=0,j=inPageIndex*this.rowsPerPage;i<this.rowsPerPage;i++,j++){this.removeRow(j);}},destroyPage:function(inPageIndex){for(var i=0;i<this.colCount;i++){var n=this.invalidatePageNode(inPageIndex,this.pageNodes[i]);if(n){dojo._destroyElement(n);}}},pacify:function(inShouldPacify){},pacifying:false,pacifyTicks:200,setPacifying:function(inPacifying){if(this.pacifying!=inPacifying){this.pacifying=inPacifying;this.pacify(this.pacifying);}},startPacify:function(){this.startPacifyTicks=new Date().getTime();},doPacify:function(){var result=(new Date().getTime()-this.startPacifyTicks)>this.pacifyTicks;this.setPacifying(true);this.startPacify();return result;},endPacify:function(){this.setPacifying(false);},resize:function(){if(this.scrollboxNode){this.windowHeight=this.scrollboxNode.clientHeight;}
for(var i=0;i<this.colCount;i++){dojox.grid.util.setStyleHeightPx(this.contentNodes[i],this.height);}
this.needPage(this.page,this.pageTop);var rowsOnPage=(this.page<this.pageCount-1)?this.rowsPerPage:(this.rowCount%this.rowsPerPage);var pageHeight=this.getPageHeight(this.page);this.averageRowHeight=(pageHeight>0&&rowsOnPage>0)?(pageHeight/rowsOnPage):0;},calcLastPageHeight:function(){if(!this.pageCount){return 0;}
var lastPage=this.pageCount-1;var lastPageHeight=((this.rowCount%this.rowsPerPage)||(this.rowsPerPage))*this.defaultRowHeight;this.pageHeights[lastPage]=lastPageHeight;return lastPageHeight;},updateContentHeight:function(inDh){this.height+=inDh;this.resize();},updatePageHeight:function(inPageIndex){if(this.pageExists(inPageIndex)){var oh=this.getPageHeight(inPageIndex);var h=(this.measurePage(inPageIndex))||(oh);this.pageHeights[inPageIndex]=h;if((h)&&(oh!=h)){this.updateContentHeight(h-oh)
this.repositionPages(inPageIndex);}}},rowHeightChanged:function(inRowIndex){this.updatePageHeight(Math.floor(inRowIndex/this.rowsPerPage));},invalidateNodes:function(){while(this.stack.length){this.destroyPage(this.popPage());}},createPageNode:function(){var p=document.createElement('div');p.style.position='absolute';p.style[dojo._isBodyLtr()?"left":"right"]='0';return p;},getPageHeight:function(inPageIndex){var ph=this.pageHeights[inPageIndex];return(ph!==undefined?ph:this.defaultPageHeight);},pushPage:function(inPageIndex){return this.stack.push(inPageIndex);},popPage:function(){return this.stack.shift();},findPage:function(inTop){var i=0,h=0;for(var ph=0;i<this.pageCount;i++,h+=ph){ph=this.getPageHeight(i);if(h+ph>=inTop){break;}}
this.page=i;this.pageTop=h;},buildPage:function(inPageIndex,inReuseNode,inPos){this.preparePage(inPageIndex,inReuseNode);this.positionPage(inPageIndex,inPos);this.installPage(inPageIndex);this.renderPage(inPageIndex);this.pushPage(inPageIndex);},needPage:function(inPageIndex,inPos){var h=this.getPageHeight(inPageIndex),oh=h;if(!this.pageExists(inPageIndex)){this.buildPage(inPageIndex,this.keepPages&&(this.stack.length>=this.keepPages),inPos);h=this.measurePage(inPageIndex)||h;this.pageHeights[inPageIndex]=h;if(h&&(oh!=h)){this.updateContentHeight(h-oh)}}else{this.positionPage(inPageIndex,inPos);}
return h;},onscroll:function(){this.scroll(this.scrollboxNode.scrollTop);},scroll:function(inTop){this.grid.scrollTop=inTop;if(this.colCount){this.startPacify();this.findPage(inTop);var h=this.height;var b=this.getScrollBottom(inTop);for(var p=this.page,y=this.pageTop;(p<this.pageCount)&&((b<0)||(y<b));p++){y+=this.needPage(p,y);}
this.firstVisibleRow=this.getFirstVisibleRow(this.page,this.pageTop,inTop);this.lastVisibleRow=this.getLastVisibleRow(p-1,y,b);if(h!=this.height){this.repositionPages(p-1);}
this.endPacify();}},getScrollBottom:function(inTop){return(this.windowHeight>=0?inTop+this.windowHeight:-1);},processNodeEvent:function(e,inNode){var t=e.target;while(t&&(t!=inNode)&&t.parentNode&&(t.parentNode.parentNode!=inNode)){t=t.parentNode;}
if(!t||!t.parentNode||(t.parentNode.parentNode!=inNode)){return false;}
var page=t.parentNode;e.topRowIndex=page.pageIndex*this.rowsPerPage;e.rowIndex=e.topRowIndex+indexInParent(t);e.rowTarget=t;return true;},processEvent:function(e){return this.processNodeEvent(e,this.contentNode);},renderRow:function(inRowIndex,inPageNode){},removeRow:function(inRowIndex){},getDefaultPageNode:function(inPageIndex){return this.getDefaultNodes()[inPageIndex];},positionPageNode:function(inNode,inPos){},getPageNodePosition:function(inNode){return inNode.offsetTop;},invalidatePageNode:function(inPageIndex,inNodes){var p=inNodes[inPageIndex];if(p){delete inNodes[inPageIndex];this.removePage(inPageIndex,p);cleanNode(p);p.innerHTML='';}
return p;},getPageRow:function(inPage){return inPage*this.rowsPerPage;},getLastPageRow:function(inPage){return Math.min(this.rowCount,this.getPageRow(inPage+1))-1;},getFirstVisibleRow:function(inPage,inPageTop,inScrollTop){if(!this.pageExists(inPage)){return 0;}
var row=this.getPageRow(inPage);var nodes=this.getDefaultNodes();var rows=divkids(nodes[inPage]);for(var i=0,l=rows.length;i<l&&inPageTop<inScrollTop;i++,row++){inPageTop+=rows[i].offsetHeight;}
return(row?row-1:row);},getLastVisibleRow:function(inPage,inBottom,inScrollBottom){if(!this.pageExists(inPage)){return 0;}
var nodes=this.getDefaultNodes();var row=this.getLastPageRow(inPage);var rows=divkids(nodes[inPage]);for(var i=rows.length-1;i>=0&&inBottom>inScrollBottom;i--,row--){inBottom-=rows[i].offsetHeight;}
return row+1;},findTopRow:function(inScrollTop){var nodes=this.getDefaultNodes();var rows=divkids(nodes[this.page]);for(var i=0,l=rows.length,t=this.pageTop,h;i<l;i++){h=rows[i].offsetHeight;t+=h;if(t>=inScrollTop){this.offset=h-(t-inScrollTop);return i+this.page*this.rowsPerPage;}}
return-1;},findScrollTop:function(inRow){var rowPage=Math.floor(inRow/this.rowsPerPage);var t=0;for(var i=0;i<rowPage;i++){t+=this.getPageHeight(i);}
this.pageTop=t;this.needPage(rowPage,this.pageTop);var nodes=this.getDefaultNodes();var rows=divkids(nodes[rowPage]);var r=inRow-this.rowsPerPage*rowPage;for(var i=0,l=rows.length;i<l&&i<r;i++){t+=rows[i].offsetHeight;}
return t;},dummy:0});})();}
if(!dojo._hasResource["dojox.grid.cells._base"]){dojo._hasResource["dojox.grid.cells._base"]=true;dojo.provide("dojox.grid.cells._base");(function(){var focusSelectNode=function(inNode){try{dojox.grid.util.fire(inNode,"focus");dojox.grid.util.fire(inNode,"select");}catch(e){}};var whenIdle=function(){setTimeout(dojo.hitch.apply(dojo,arguments),0);};var dgc=dojox.grid.cells;dojo.declare("dojox.grid.cells._Base",null,{styles:'',classes:'',editable:false,alwaysEditing:false,formatter:null,defaultValue:'...',value:null,hidden:false,_valueProp:"value",_formatPending:false,constructor:function(inProps){this._props=inProps||{};dojo.mixin(this,inProps);},format:function(inRowIndex,inItem){var f,i=this.grid.edit.info,d=this.get?this.get(inRowIndex,inItem):(this.value||this.defaultValue);if(this.editable&&(this.alwaysEditing||(i.rowIndex==inRowIndex&&i.cell==this))){return this.formatEditing(d,inRowIndex);}else{var v=(d!=this.defaultValue&&(f=this.formatter))?f.call(this,d,inRowIndex):d;return(typeof v=="undefined"?this.defaultValue:v);}},formatEditing:function(inDatum,inRowIndex){},getNode:function(inRowIndex){return this.view.getCellNode(inRowIndex,this.index);},getHeaderNode:function(){return this.view.getHeaderCellNode(this.index);},getEditNode:function(inRowIndex){return(this.getNode(inRowIndex)||0).firstChild||0;},canResize:function(){var uw=this.unitWidth;return uw&&(uw=='auto');},isFlex:function(){var uw=this.unitWidth;return uw&&(uw=='auto'||uw.slice(-1)=='%');},applyEdit:function(inValue,inRowIndex){this.grid.edit.applyCellEdit(inValue,this,inRowIndex);},cancelEdit:function(inRowIndex){this.grid.doCancelEdit(inRowIndex);},_onEditBlur:function(inRowIndex){if(this.grid.edit.isEditCell(inRowIndex,this.index)){this.grid.edit.apply();}},registerOnBlur:function(inNode,inRowIndex){if(this.commitOnBlur){dojo.connect(inNode,"onblur",function(e){setTimeout(dojo.hitch(this,"_onEditBlur",inRowIndex),250);});}},needFormatNode:function(inDatum,inRowIndex){this._formatPending=true;whenIdle(this,"_formatNode",inDatum,inRowIndex);},cancelFormatNode:function(){this._formatPending=false;},_formatNode:function(inDatum,inRowIndex){if(this._formatPending){this._formatPending=false;dojo.setSelectable(this.grid.domNode,true);this.formatNode(this.getEditNode(inRowIndex),inDatum,inRowIndex);}},formatNode:function(inNode,inDatum,inRowIndex){if(dojo.isIE){whenIdle(this,"focus",inRowIndex,inNode);}else{this.focus(inRowIndex,inNode);}},dispatchEvent:function(m,e){if(m in this){return this[m](e);}},getValue:function(inRowIndex){return this.getEditNode(inRowIndex)[this._valueProp];},setValue:function(inRowIndex,inValue){var n=this.getEditNode(inRowIndex);if(n){n[this._valueProp]=inValue};},focus:function(inRowIndex,inNode){focusSelectNode(inNode||this.getEditNode(inRowIndex));},save:function(inRowIndex){this.value=this.value||this.getValue(inRowIndex);},restore:function(inRowIndex){this.setValue(inRowIndex,this.value);},_finish:function(inRowIndex){dojo.setSelectable(this.grid.domNode,false);this.cancelFormatNode();},apply:function(inRowIndex){this.applyEdit(this.getValue(inRowIndex),inRowIndex);this._finish(inRowIndex);},cancel:function(inRowIndex){this.cancelEdit(inRowIndex);this._finish(inRowIndex);}});dgc._Base.markupFactory=function(node,cellDef){var d=dojo;var formatter=d.trim(d.attr(node,"formatter")||"");if(formatter){cellDef.formatter=dojo.getObject(formatter);}
var get=d.trim(d.attr(node,"get")||"");if(get){cellDef.get=dojo.getObject(get);}
var sortDesc=d.trim(d.attr(node,"sortDesc")||"");if(sortDesc){cellDef.sortDesc=!(sortDesc.toLowerCase()=="false");}
var value=d.trim(d.attr(node,"loadingText")||d.attr(node,"defaultValue")||"");if(value){cellDef.defaultValue=value;}
var editable=d.trim(d.attr(node,"editable")||"");if(editable){cellDef.editable=!(editable.toLowerCase()=="false");}
var alwaysEditing=d.trim(d.attr(node,"alwaysEditing")||"");if(alwaysEditing){cellDef.alwaysEditing=!(alwaysEditing.toLowerCase()=="false");}
var styles=d.trim(d.attr(node,"styles")||"");if(styles){cellDef.styles=styles;}
var classes=d.trim(d.attr(node,"classes")||"");if(classes){cellDef.classes=classes;}}
dojo.declare("dojox.grid.cells.Cell",dgc._Base,{constructor:function(){this.keyFilter=this.keyFilter;},keyFilter:null,formatEditing:function(inDatum,inRowIndex){this.needFormatNode(inDatum,inRowIndex);return'<input class="dojoxGridInput" type="text" value="'+inDatum+'">';},formatNode:function(inNode,inDatum,inRowIndex){this.inherited(arguments);this.registerOnBlur(inNode,inRowIndex);},doKey:function(e){if(this.keyFilter){var key=String.fromCharCode(e.charCode);if(key.search(this.keyFilter)==-1){dojo.stopEvent(e);}}},_finish:function(inRowIndex){this.inherited(arguments);var n=this.getEditNode(inRowIndex);try{dojox.grid.util.fire(n,"blur");}catch(e){}}});dgc.Cell.markupFactory=function(node,cellDef){dgc._Base.markupFactory(node,cellDef);var d=dojo;var keyFilter=d.trim(d.attr(node,"keyFilter")||"");if(keyFilter){cellDef.keyFilter=new RegExp(keyFilter);}}
dojo.declare("dojox.grid.cells.RowIndex",dgc.Cell,{name:'Row',postscript:function(){this.editable=false;},get:function(inRowIndex){return inRowIndex+1;}});dgc.RowIndex.markupFactory=function(node,cellDef){dgc.Cell.markupFactory(node,cellDef);}
dojo.declare("dojox.grid.cells.Select",dgc.Cell,{options:null,values:null,returnIndex:-1,constructor:function(inCell){this.values=this.values||this.options;},formatEditing:function(inDatum,inRowIndex){this.needFormatNode(inDatum,inRowIndex);var h=['<select class="dojoxGridSelect">'];for(var i=0,o,v;((o=this.options[i])!==undefined)&&((v=this.values[i])!==undefined);i++){h.push("<option",(inDatum==v?' selected':''),' value="'+v+'"',">",o,"</option>");}
h.push('</select>');return h.join('');},getValue:function(inRowIndex){var n=this.getEditNode(inRowIndex);if(n){var i=n.selectedIndex,o=n.options[i];return this.returnIndex>-1?i:o.value||o.innerHTML;}}});dgc.Select.markupFactory=function(node,cell){dgc.Cell.markupFactory(node,cell);var d=dojo;var options=d.trim(d.attr(node,"options")||"");if(options){var o=options.split(',');if(o[0]!=options){cell.options=o;}}
var values=d.trim(d.attr(node,"values")||"");if(values){var v=values.split(',');if(v[0]!=values){cell.values=v;}}}
dojo.declare("dojox.grid.cells.AlwaysEdit",dgc.Cell,{alwaysEditing:true,_formatNode:function(inDatum,inRowIndex){this.formatNode(this.getEditNode(inRowIndex),inDatum,inRowIndex);},applyStaticValue:function(inRowIndex){var e=this.grid.edit;e.applyCellEdit(this.getValue(inRowIndex),this,inRowIndex);e.start(this,inRowIndex,true);}});dgc.AlwaysEdit.markupFactory=function(node,cell){dgc.Cell.markupFactory(node,cell);}
dojo.declare("dojox.grid.cells.Bool",dgc.AlwaysEdit,{_valueProp:"checked",formatEditing:function(inDatum,inRowIndex){return'<input class="dojoxGridInput" type="checkbox"'+(inDatum?' checked="checked"':'')+' style="width: auto" />';},doclick:function(e){if(e.target.tagName=='INPUT'){this.applyStaticValue(e.rowIndex);}}});dgc.Bool.markupFactory=function(node,cell){dgc.AlwaysEdit.markupFactory(node,cell);}})();}
if(!dojo._hasResource["dojox.grid.cells"]){dojo._hasResource["dojox.grid.cells"]=true;dojo.provide("dojox.grid.cells");}
if(!dojo._hasResource["dojo.dnd.common"]){dojo._hasResource["dojo.dnd.common"]=true;dojo.provide("dojo.dnd.common");dojo.dnd._isMac=navigator.appVersion.indexOf("Macintosh")>=0;dojo.dnd._copyKey=dojo.dnd._isMac?"metaKey":"ctrlKey";dojo.dnd.getCopyKeyState=function(e){return e[dojo.dnd._copyKey];};dojo.dnd._uniqueId=0;dojo.dnd.getUniqueId=function(){var id;do{id=dojo._scopeName+"Unique"+(++dojo.dnd._uniqueId);}while(dojo.byId(id));return id;};dojo.dnd._empty={};dojo.dnd.isFormElement=function(e){var t=e.target;if(t.nodeType==3){t=t.parentNode;}
return" button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0;};}
if(!dojo._hasResource["dojo.dnd.autoscroll"]){dojo._hasResource["dojo.dnd.autoscroll"]=true;dojo.provide("dojo.dnd.autoscroll");dojo.dnd.getViewport=function(){var d=dojo.doc,dd=d.documentElement,w=window,b=dojo.body();if(dojo.isMozilla){return{w:dd.clientWidth,h:w.innerHeight};}else if(!dojo.isOpera&&w.innerWidth){return{w:w.innerWidth,h:w.innerHeight};}else if(!dojo.isOpera&&dd&&dd.clientWidth){return{w:dd.clientWidth,h:dd.clientHeight};}else if(b.clientWidth){return{w:b.clientWidth,h:b.clientHeight};}
return null;};dojo.dnd.V_TRIGGER_AUTOSCROLL=32;dojo.dnd.H_TRIGGER_AUTOSCROLL=32;dojo.dnd.V_AUTOSCROLL_VALUE=16;dojo.dnd.H_AUTOSCROLL_VALUE=16;dojo.dnd.autoScroll=function(e){var v=dojo.dnd.getViewport(),dx=0,dy=0;if(e.clientX<dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=-dojo.dnd.H_AUTOSCROLL_VALUE;}else if(e.clientX>v.w-dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=dojo.dnd.H_AUTOSCROLL_VALUE;}
if(e.clientY<dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=-dojo.dnd.V_AUTOSCROLL_VALUE;}else if(e.clientY>v.h-dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=dojo.dnd.V_AUTOSCROLL_VALUE;}
window.scrollBy(dx,dy);};dojo.dnd._validNodes={"div":1,"p":1,"td":1};dojo.dnd._validOverflow={"auto":1,"scroll":1};dojo.dnd.autoScrollNodes=function(e){for(var n=e.target;n;){if(n.nodeType==1&&(n.tagName.toLowerCase()in dojo.dnd._validNodes)){var s=dojo.getComputedStyle(n);if(s.overflow.toLowerCase()in dojo.dnd._validOverflow){var b=dojo._getContentBox(n,s),t=dojo._abs(n,true);var w=Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL,b.w/2),h=Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL,b.h/2),rx=e.pageX-t.x,ry=e.pageY-t.y,dx=0,dy=0;if(dojo.isSafari||dojo.isOpera){rx+=dojo.body().scrollLeft,ry+=dojo.body().scrollTop;}
if(rx>0&&rx<b.w){if(rx<w){dx=-w;}else if(rx>b.w-w){dx=w;}}
if(ry>0&&ry<b.h){if(ry<h){dy=-h;}else if(ry>b.h-h){dy=h;}}
var oldLeft=n.scrollLeft,oldTop=n.scrollTop;n.scrollLeft=n.scrollLeft+dx;n.scrollTop=n.scrollTop+dy;if(oldLeft!=n.scrollLeft||oldTop!=n.scrollTop){return;}}}
try{n=n.parentNode;}catch(x){n=null;}}
dojo.dnd.autoScroll(e);};}
if(!dojo._hasResource["dojo.dnd.Mover"]){dojo._hasResource["dojo.dnd.Mover"]=true;dojo.provide("dojo.dnd.Mover");dojo.declare("dojo.dnd.Mover",null,{constructor:function(node,e,host){this.node=dojo.byId(node);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=this.host=host,d=node.ownerDocument,firstEvent=dojo.connect(d,"onmousemove",this,"onFirstMove");this.events=[dojo.connect(d,"onmousemove",this,"onMouseMove"),dojo.connect(d,"onmouseup",this,"onMouseUp"),dojo.connect(d,"ondragstart",dojo.stopEvent),dojo.connect(d.body,"onselectstart",dojo.stopEvent),firstEvent];if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY});dojo.stopEvent(e);},onMouseUp:function(e){if(dojo.isSafari&&dojo.dnd._isMac&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){this.destroy();}
dojo.stopEvent(e);},onFirstMove:function(){var s=this.node.style,l,t,h=this.host;switch(s.position){case"relative":case"absolute":l=Math.round(parseFloat(s.left));t=Math.round(parseFloat(s.top));break;default:s.position="absolute";var m=dojo.marginBox(this.node);var b=dojo.doc.body;var bs=dojo.getComputedStyle(b);var bm=dojo._getMarginBox(b,bs);var bc=dojo._getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break;}
this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove){h.onFirstMove(this);}
dojo.disconnect(this.events.pop());},destroy:function(){dojo.forEach(this.events,dojo.disconnect);var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}
this.events=this.node=this.host=null;}});}
if(!dojo._hasResource["dojo.dnd.Moveable"]){dojo._hasResource["dojo.dnd.Moveable"]=true;dojo.provide("dojo.dnd.Moveable");dojo.declare("dojo.dnd.Moveable",null,{handle:"",delay:0,skip:false,constructor:function(node,params){this.node=dojo.byId(node);if(!params){params={};}
this.handle=params.handle?dojo.byId(params.handle):null;if(!this.handle){this.handle=this.node;}
this.delay=params.delay>0?params.delay:0;this.skip=params.skip;this.mover=params.mover?params.mover:dojo.dnd.Mover;this.events=[dojo.connect(this.handle,"onmousedown",this,"onMouseDown"),dojo.connect(this.handle,"ondragstart",this,"onSelectStart"),dojo.connect(this.handle,"onselectstart",this,"onSelectStart")];},markupFactory:function(params,node){return new dojo.dnd.Moveable(node,params);},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.events=this.node=this.handle=null;},onMouseDown:function(e){if(this.skip&&dojo.dnd.isFormElement(e)){return;}
if(this.delay){this.events.push(dojo.connect(this.handle,"onmousemove",this,"onMouseMove"),dojo.connect(this.handle,"onmouseup",this,"onMouseUp"));this._lastX=e.pageX;this._lastY=e.pageY;}else{this.onDragDetected(e);}
dojo.stopEvent(e);},onMouseMove:function(e){if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){this.onMouseUp(e);this.onDragDetected(e);}
dojo.stopEvent(e);},onMouseUp:function(e){for(var i=0;i<2;++i){dojo.disconnect(this.events.pop());}
dojo.stopEvent(e);},onSelectStart:function(e){if(!this.skip||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onDragDetected:function(e){new this.mover(this.node,e,this);},onMoveStart:function(mover){dojo.publish("/dnd/move/start",[mover]);dojo.addClass(dojo.body(),"dojoMove");dojo.addClass(this.node,"dojoMoveItem");},onMoveStop:function(mover){dojo.publish("/dnd/move/stop",[mover]);dojo.removeClass(dojo.body(),"dojoMove");dojo.removeClass(this.node,"dojoMoveItem");},onFirstMove:function(mover){},onMove:function(mover,leftTop){this.onMoving(mover,leftTop);var s=mover.node.style;s.left=leftTop.l+"px";s.top=leftTop.t+"px";this.onMoved(mover,leftTop);},onMoving:function(mover,leftTop){},onMoved:function(mover,leftTop){}});}
if(!dojo._hasResource["dojo.dnd.Container"]){dojo._hasResource["dojo.dnd.Container"]=true;dojo.provide("dojo.dnd.Container");dojo.declare("dojo.dnd.Container",null,{skipForm:false,constructor:function(node,params){this.node=dojo.byId(node);if(!params){params={};}
this.creator=params.creator||null;this.skipForm=params.skipForm;this.parent=params.dropParent&&dojo.byId(params.dropParent);this.map={};this.current=null;this.containerState="";dojo.addClass(this.node,"dojoDndContainer");if(!(params&&params._skipStartup)){this.startup();}
this.events=[dojo.connect(this.node,"onmouseover",this,"onMouseOver"),dojo.connect(this.node,"onmouseout",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",this,"onSelectStart"),dojo.connect(this.node,"onselectstart",this,"onSelectStart")];},creator:function(){},getItem:function(key){return this.map[key];},setItem:function(key,data){this.map[key]=data;},delItem:function(key){delete this.map[key];},forInItems:function(f,o){o=o||dojo.global;var m=this.map,e=dojo.dnd._empty;for(var i in m){if(i in e){continue;}
f.call(o,m[i],i,this);}
return o;},clearItems:function(){this.map={};},getAllNodes:function(){return dojo.query("> .dojoDndItem",this.parent);},sync:function(){var map={};this.getAllNodes().forEach(function(node){if(node.id){var item=this.getItem(node.id);if(item){map[node.id]=item;return;}}else{node.id=dojo.dnd.getUniqueId();}
var type=node.getAttribute("dndType"),data=node.getAttribute("dndData");map[node.id]={data:data||node.innerHTML,type:type?type.split(/\s*,\s*/):["text"]};},this);this.map=map;return this;},insertNodes:function(data,before,anchor){if(!this.parent.firstChild){anchor=null;}else if(before){if(!anchor){anchor=this.parent.firstChild;}}else{if(anchor){anchor=anchor.nextSibling;}}
if(anchor){for(var i=0;i<data.length;++i){var t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.insertBefore(t.node,anchor);}}else{for(var i=0;i<data.length;++i){var t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.appendChild(t.node);}}
return this;},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.clearItems();this.node=this.parent=this.current=null;},markupFactory:function(params,node){params._skipStartup=true;return new dojo.dnd.Container(node,params);},startup:function(){if(!this.parent){this.parent=this.node;if(this.parent.tagName.toLowerCase()=="table"){var c=this.parent.getElementsByTagName("tbody");if(c&&c.length){this.parent=c[0];}}}
this.defaultCreator=dojo.dnd._defaultCreator(this.parent);this.sync();},onMouseOver:function(e){var n=e.relatedTarget;while(n){if(n==this.node){break;}
try{n=n.parentNode;}catch(x){n=null;}}
if(!n){this._changeState("Container","Over");this.onOverEvent();}
n=this._getChildByEvent(e);if(this.current==n){return;}
if(this.current){this._removeItemClass(this.current,"Over");}
if(n){this._addItemClass(n,"Over");}
this.current=n;},onMouseOut:function(e){for(var n=e.relatedTarget;n;){if(n==this.node){return;}
try{n=n.parentNode;}catch(x){n=null;}}
if(this.current){this._removeItemClass(this.current,"Over");this.current=null;}
this._changeState("Container","");this.onOutEvent();},onSelectStart:function(e){if(!this.skipForm||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onOverEvent:function(){},onOutEvent:function(){},_changeState:function(type,newState){var prefix="dojoDnd"+type;var state=type.toLowerCase()+"State";dojo.removeClass(this.node,prefix+this[state]);dojo.addClass(this.node,prefix+newState);this[state]=newState;},_addItemClass:function(node,type){dojo.addClass(node,"dojoDndItem"+type);},_removeItemClass:function(node,type){dojo.removeClass(node,"dojoDndItem"+type);},_getChildByEvent:function(e){var node=e.target;if(node){for(var parent=node.parentNode;parent;node=parent,parent=node.parentNode){if(parent==this.parent&&dojo.hasClass(node,"dojoDndItem")){return node;}}}
return null;},_normalizedCreator:function(item,hint){var t=(this.creator||this.defaultCreator).call(this,item,hint);if(!dojo.isArray(t.type)){t.type=["text"];}
if(!t.node.id){t.node.id=dojo.dnd.getUniqueId();}
dojo.addClass(t.node,"dojoDndItem");return t;}});dojo.dnd._createNode=function(tag){if(!tag){return dojo.dnd._createSpan;}
return function(text){var n=dojo.doc.createElement(tag);n.innerHTML=text;return n;};};dojo.dnd._createTrTd=function(text){var tr=dojo.doc.createElement("tr");var td=dojo.doc.createElement("td");td.innerHTML=text;tr.appendChild(td);return tr;};dojo.dnd._createSpan=function(text){var n=dojo.doc.createElement("span");n.innerHTML=text;return n;};dojo.dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"};dojo.dnd._defaultCreator=function(node){var tag=node.tagName.toLowerCase();var c=tag=="tbody"||tag=="thead"?dojo.dnd._createTrTd:dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]);return function(item,hint){var isObj=item&&dojo.isObject(item),data,type,n;if(isObj&&item.tagName&&item.nodeType&&item.getAttribute){data=item.getAttribute("dndData")||item.innerHTML;type=item.getAttribute("dndType");type=type?type.split(/\s*,\s*/):["text"];n=item;}else{data=(isObj&&item.data)?item.data:item;type=(isObj&&item.type)?item.type:["text"];n=(hint=="avatar"?dojo.dnd._createSpan:c)(String(data));}
n.id=dojo.dnd.getUniqueId();return{node:n,data:data,type:type};};};}
if(!dojo._hasResource["dojo.dnd.Selector"]){dojo._hasResource["dojo.dnd.Selector"]=true;dojo.provide("dojo.dnd.Selector");dojo.declare("dojo.dnd.Selector",dojo.dnd.Container,{constructor:function(node,params){if(!params){params={};}
this.singular=params.singular;this.autoSync=params.autoSync;this.selection={};this.anchor=null;this.simpleSelection=false;this.events.push(dojo.connect(this.node,"onmousedown",this,"onMouseDown"),dojo.connect(this.node,"onmouseup",this,"onMouseUp"));},singular:false,getSelectedNodes:function(){var t=new dojo.NodeList();var e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}
t.push(dojo.byId(i));}
return t;},selectNone:function(){return this._removeSelection()._removeAnchor();},selectAll:function(){this.forInItems(function(data,id){this._addItemClass(dojo.byId(id),"Selected");this.selection[id]=1;},this);return this._removeAnchor();},deleteSelectedNodes:function(){var e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}
var n=dojo.byId(i);this.delItem(i);dojo._destroyElement(n);}
this.anchor=null;this.selection={};return this;},forInSelectedItems:function(f,o){o=o||dojo.global;var s=this.selection,e=dojo.dnd._empty;for(var i in s){if(i in e){continue;}
f.call(o,this.getItem(i),i,this);}},sync:function(){dojo.dnd.Selector.superclass.sync.call(this);if(this.anchor){if(!this.getItem(this.anchor.id)){this.anchor=null;}}
var t=[],e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}
if(!this.getItem(i)){t.push(i);}}
dojo.forEach(t,function(i){delete this.selection[i];},this);return this;},insertNodes:function(addSelected,data,before,anchor){var oldCreator=this._normalizedCreator;this._normalizedCreator=function(item,hint){var t=oldCreator.call(this,item,hint);if(addSelected){if(!this.anchor){this.anchor=t.node;this._removeItemClass(t.node,"Selected");this._addItemClass(this.anchor,"Anchor");}else if(this.anchor!=t.node){this._removeItemClass(t.node,"Anchor");this._addItemClass(t.node,"Selected");}
this.selection[t.node.id]=1;}else{this._removeItemClass(t.node,"Selected");this._removeItemClass(t.node,"Anchor");}
return t;};dojo.dnd.Selector.superclass.insertNodes.call(this,data,before,anchor);this._normalizedCreator=oldCreator;return this;},destroy:function(){dojo.dnd.Selector.superclass.destroy.call(this);this.selection=this.anchor=null;},markupFactory:function(params,node){params._skipStartup=true;return new dojo.dnd.Selector(node,params);},onMouseDown:function(e){if(this.autoSync){this.sync();}
if(!this.current){return;}
if(!this.singular&&!dojo.dnd.getCopyKeyState(e)&&!e.shiftKey&&(this.current.id in this.selection)){this.simpleSelection=true;dojo.stopEvent(e);return;}
if(!this.singular&&e.shiftKey){if(!dojo.dnd.getCopyKeyState(e)){this._removeSelection();}
var c=this.getAllNodes();if(c.length){if(!this.anchor){this.anchor=c[0];this._addItemClass(this.anchor,"Anchor");}
this.selection[this.anchor.id]=1;if(this.anchor!=this.current){var i=0;for(;i<c.length;++i){var node=c[i];if(node==this.anchor||node==this.current){break;}}
for(++i;i<c.length;++i){var node=c[i];if(node==this.anchor||node==this.current){break;}
this._addItemClass(node,"Selected");this.selection[node.id]=1;}
this._addItemClass(this.current,"Selected");this.selection[this.current.id]=1;}}}else{if(this.singular){if(this.anchor==this.current){if(dojo.dnd.getCopyKeyState(e)){this.selectNone();}}else{this.selectNone();this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}}else{if(dojo.dnd.getCopyKeyState(e)){if(this.anchor==this.current){delete this.selection[this.anchor.id];this._removeAnchor();}else{if(this.current.id in this.selection){this._removeItemClass(this.current,"Selected");delete this.selection[this.current.id];}else{if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this._addItemClass(this.anchor,"Selected");}
this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}else{if(!(this.current.id in this.selection)){this.selectNone();this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}}
dojo.stopEvent(e);},onMouseUp:function(e){if(!this.simpleSelection){return;}
this.simpleSelection=false;this.selectNone();if(this.current){this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}},onMouseMove:function(e){this.simpleSelection=false;},onOverEvent:function(){this.onmousemoveEvent=dojo.connect(this.node,"onmousemove",this,"onMouseMove");},onOutEvent:function(){dojo.disconnect(this.onmousemoveEvent);delete this.onmousemoveEvent;},_removeSelection:function(){var e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}
var node=dojo.byId(i);if(node){this._removeItemClass(node,"Selected");}}
this.selection={};return this;},_removeAnchor:function(){if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this.anchor=null;}
return this;}});}
if(!dojo._hasResource["dojo.dnd.Avatar"]){dojo._hasResource["dojo.dnd.Avatar"]=true;dojo.provide("dojo.dnd.Avatar");dojo.declare("dojo.dnd.Avatar",null,{constructor:function(manager){this.manager=manager;this.construct();},construct:function(){var a=dojo.doc.createElement("table");a.className="dojoDndAvatar";a.style.position="absolute";a.style.zIndex=1999;a.style.margin="0px";var b=dojo.doc.createElement("tbody");var tr=dojo.doc.createElement("tr");tr.className="dojoDndAvatarHeader";var td=dojo.doc.createElement("td");td.innerHTML=this._generateText();tr.appendChild(td);dojo.style(tr,"opacity",0.9);b.appendChild(tr);var k=Math.min(5,this.manager.nodes.length);var source=this.manager.source,node;for(var i=0;i<k;++i){tr=dojo.doc.createElement("tr");tr.className="dojoDndAvatarItem";td=dojo.doc.createElement("td");if(source.creator){node=source._normalizedCreator(source.getItem(this.manager.nodes[i].id).data,"avatar").node;}else{node=this.manager.nodes[i].cloneNode(true);if(node.tagName.toLowerCase()=="tr"){var table=dojo.doc.createElement("table"),tbody=dojo.doc.createElement("tbody");tbody.appendChild(node);table.appendChild(tbody);node=table;}}
node.id="";td.appendChild(node);tr.appendChild(td);dojo.style(tr,"opacity",(9-i)/10);b.appendChild(tr);}
a.appendChild(b);this.node=a;},destroy:function(){dojo._destroyElement(this.node);this.node=false;},update:function(){dojo[(this.manager.canDropFlag?"add":"remove")+"Class"](this.node,"dojoDndAvatarCanDrop");dojo.query("tr.dojoDndAvatarHeader td",this.node).forEach(function(node){node.innerHTML=this._generateText();},this);},_generateText:function(){return this.manager.nodes.length.toString();}});}
if(!dojo._hasResource["dojo.dnd.Manager"]){dojo._hasResource["dojo.dnd.Manager"]=true;dojo.provide("dojo.dnd.Manager");dojo.declare("dojo.dnd.Manager",null,{constructor:function(){this.avatar=null;this.source=null;this.nodes=[];this.copy=true;this.target=null;this.canDropFlag=false;this.events=[];},OFFSET_X:16,OFFSET_Y:16,overSource:function(source){if(this.avatar){this.target=(source&&source.targetState!="Disabled")?source:null;this.canDropFlag=Boolean(this.target);this.avatar.update();}
dojo.publish("/dnd/source/over",[source]);},outSource:function(source){if(this.avatar){if(this.target==source){this.target=null;this.canDropFlag=false;this.avatar.update();dojo.publish("/dnd/source/over",[null]);}}else{dojo.publish("/dnd/source/over",[null]);}},startDrag:function(source,nodes,copy){this.source=source;this.nodes=nodes;this.copy=Boolean(copy);this.avatar=this.makeAvatar();dojo.body().appendChild(this.avatar.node);dojo.publish("/dnd/start",[source,nodes,this.copy]);this.events=[dojo.connect(dojo.doc,"onmousemove",this,"onMouseMove"),dojo.connect(dojo.doc,"onmouseup",this,"onMouseUp"),dojo.connect(dojo.doc,"onkeydown",this,"onKeyDown"),dojo.connect(dojo.doc,"onkeyup",this,"onKeyUp"),dojo.connect(dojo.doc,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent)];var c="dojoDnd"+(copy?"Copy":"Move");dojo.addClass(dojo.body(),c);},canDrop:function(flag){var canDropFlag=Boolean(this.target&&flag);if(this.canDropFlag!=canDropFlag){this.canDropFlag=canDropFlag;this.avatar.update();}},stopDrag:function(){dojo.removeClass(dojo.body(),"dojoDndCopy");dojo.removeClass(dojo.body(),"dojoDndMove");dojo.forEach(this.events,dojo.disconnect);this.events=[];this.avatar.destroy();this.avatar=null;this.source=this.target=null;this.nodes=[];},makeAvatar:function(){return new dojo.dnd.Avatar(this);},updateAvatar:function(){this.avatar.update();},onMouseMove:function(e){var a=this.avatar;if(a){dojo.dnd.autoScrollNodes(e);var s=a.node.style;s.left=(e.pageX+this.OFFSET_X)+"px";s.top=(e.pageY+this.OFFSET_Y)+"px";var copy=Boolean(this.source.copyState(dojo.dnd.getCopyKeyState(e)));if(this.copy!=copy){this._setCopyStatus(copy);}}},onMouseUp:function(e){if(this.avatar&&(!("mouseButton"in this.source)||(dojo.isSafari&&dojo.dnd._isMac&&this.source.mouseButton==2?e.button==0:this.source.mouseButton==e.button))){if(this.target&&this.canDropFlag){var copy=Boolean(this.source.copyState(dojo.dnd.getCopyKeyState(e))),params=[this.source,this.nodes,copy,this.target];dojo.publish("/dnd/drop/before",params);dojo.publish("/dnd/drop",params);}else{dojo.publish("/dnd/cancel");}
this.stopDrag();}},onKeyDown:function(e){if(this.avatar){switch(e.keyCode){case dojo.keys.CTRL:var copy=Boolean(this.source.copyState(true));if(this.copy!=copy){this._setCopyStatus(copy);}
break;case dojo.keys.ESCAPE:dojo.publish("/dnd/cancel");this.stopDrag();break;}}},onKeyUp:function(e){if(this.avatar&&e.keyCode==dojo.keys.CTRL){var copy=Boolean(this.source.copyState(false));if(this.copy!=copy){this._setCopyStatus(copy);}}},_setCopyStatus:function(copy){this.copy=copy;this.source._markDndStatus(this.copy);this.updateAvatar();dojo.removeClass(dojo.body(),"dojoDnd"+(this.copy?"Move":"Copy"));dojo.addClass(dojo.body(),"dojoDnd"+(this.copy?"Copy":"Move"));}});dojo.dnd._manager=null;dojo.dnd.manager=function(){if(!dojo.dnd._manager){dojo.dnd._manager=new dojo.dnd.Manager();}
return dojo.dnd._manager;};}
if(!dojo._hasResource["dojo.dnd.Source"]){dojo._hasResource["dojo.dnd.Source"]=true;dojo.provide("dojo.dnd.Source");dojo.declare("dojo.dnd.Source",dojo.dnd.Selector,{isSource:true,horizontal:false,copyOnly:false,selfCopy:false,selfAccept:true,skipForm:false,withHandles:false,autoSync:false,delay:0,accept:["text"],constructor:function(node,params){dojo.mixin(this,dojo.mixin({},params));var type=this.accept;if(type.length){this.accept={};for(var i=0;i<type.length;++i){this.accept[type[i]]=1;}}
this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.before=true;this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource){dojo.addClass(this.node,"dojoDndSource");}
this.targetState="";if(this.accept){dojo.addClass(this.node,"dojoDndTarget");}
if(this.horizontal){dojo.addClass(this.node,"dojoDndHorizontal");}
this.topics=[dojo.subscribe("/dnd/source/over",this,"onDndSourceOver"),dojo.subscribe("/dnd/start",this,"onDndStart"),dojo.subscribe("/dnd/drop",this,"onDndDrop"),dojo.subscribe("/dnd/cancel",this,"onDndCancel")];},checkAcceptance:function(source,nodes){if(this==source){return!this.copyOnly||this.selfAccept;}
for(var i=0;i<nodes.length;++i){var type=source.getItem(nodes[i].id).type;var flag=false;for(var j=0;j<type.length;++j){if(type[j]in this.accept){flag=true;break;}}
if(!flag){return false;}}
return true;},copyState:function(keyPressed,self){if(keyPressed){return true;}
if(arguments.length<2){self=this==dojo.dnd.manager().target;}
if(self){if(this.copyOnly){return this.selfCopy;}}else{return this.copyOnly;}
return false;},destroy:function(){dojo.dnd.Source.superclass.destroy.call(this);dojo.forEach(this.topics,dojo.unsubscribe);this.targetAnchor=null;},markupFactory:function(params,node){params._skipStartup=true;return new dojo.dnd.Source(node,params);},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}
dojo.dnd.Source.superclass.onMouseMove.call(this,e);var m=dojo.dnd.manager();if(this.isDragging){var before=false;if(this.current){if(!this.targetBox||this.targetAnchor!=this.current){this.targetBox={xy:dojo.coords(this.current,true),w:this.current.offsetWidth,h:this.current.offsetHeight};}
if(this.horizontal){before=(e.pageX-this.targetBox.xy.x)<(this.targetBox.w/2);}else{before=(e.pageY-this.targetBox.xy.y)<(this.targetBox.h/2);}}
if(this.current!=this.targetAnchor||before!=this.before){this._markTargetAnchor(before);m.canDrop(!this.current||m.source!=this||!(this.current.id in this.selection));}}else{if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay)){var nodes=this.getSelectedNodes();if(nodes.length){m.startDrag(this,nodes,this.copyState(dojo.dnd.getCopyKeyState(e),true));}}}},onMouseDown:function(e){if(this._legalMouseDown(e)&&(!this.skipForm||!dojo.dnd.isFormElement(e))){this.mouseDown=true;this.mouseButton=e.button;this._lastX=e.pageX;this._lastY=e.pageY;dojo.dnd.Source.superclass.onMouseDown.call(this,e);}},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;dojo.dnd.Source.superclass.onMouseUp.call(this,e);}},onDndSourceOver:function(source){if(this!=source){this.mouseDown=false;if(this.targetAnchor){this._unmarkTargetAnchor();}}else if(this.isDragging){var m=dojo.dnd.manager();m.canDrop(this.targetState!="Disabled"&&(!this.current||m.source!=this||!(this.current.id in this.selection)));}},onDndStart:function(source,nodes,copy){if(this.autoSync){this.sync();}
if(this.isSource){this._changeState("Source",this==source?(copy?"Copied":"Moved"):"");}
var accepted=this.accept&&this.checkAcceptance(source,nodes);this._changeState("Target",accepted?"":"Disabled");if(this==source){dojo.dnd.manager().overSource(this);}
this.isDragging=true;},onDndDrop:function(source,nodes,copy,target){if(this==target){this.onDrop(source,nodes,copy);}
this.onDndCancel();},onDndCancel:function(){if(this.targetAnchor){this._unmarkTargetAnchor();this.targetAnchor=null;}
this.before=true;this.isDragging=false;this.mouseDown=false;delete this.mouseButton;this._changeState("Source","");this._changeState("Target","");},onDrop:function(source,nodes,copy){if(this!=source){this.onDropExternal(source,nodes,copy);}else{this.onDropInternal(nodes,copy);}},onDropExternal:function(source,nodes,copy){var oldCreator=this._normalizedCreator;if(this.creator){this._normalizedCreator=function(node,hint){return oldCreator.call(this,source.getItem(node.id).data,hint);};}else{if(copy){this._normalizedCreator=function(node,hint){var t=source.getItem(node.id);var n=node.cloneNode(true);n.id=dojo.dnd.getUniqueId();return{node:n,data:t.data,type:t.type};};}else{this._normalizedCreator=function(node,hint){var t=source.getItem(node.id);source.delItem(node.id);return{node:node,data:t.data,type:t.type};};}}
this.selectNone();if(!copy&&!this.creator){source.selectNone();}
this.insertNodes(true,nodes,this.before,this.current);if(!copy&&this.creator){source.deleteSelectedNodes();}
this._normalizedCreator=oldCreator;},onDropInternal:function(nodes,copy){var oldCreator=this._normalizedCreator;if(this.current&&this.current.id in this.selection){return;}
if(copy){if(this.creator){this._normalizedCreator=function(node,hint){return oldCreator.call(this,this.getItem(node.id).data,hint);};}else{this._normalizedCreator=function(node,hint){var t=this.getItem(node.id);var n=node.cloneNode(true);n.id=dojo.dnd.getUniqueId();return{node:n,data:t.data,type:t.type};};}}else{if(!this.current){return;}
this._normalizedCreator=function(node,hint){var t=this.getItem(node.id);return{node:node,data:t.data,type:t.type};};}
this._removeSelection();this.insertNodes(true,nodes,this.before,this.current);this._normalizedCreator=oldCreator;},onDraggingOver:function(){},onDraggingOut:function(){},onOverEvent:function(){dojo.dnd.Source.superclass.onOverEvent.call(this);dojo.dnd.manager().overSource(this);if(this.isDragging&&this.targetState!="Disabled"){this.onDraggingOver();}},onOutEvent:function(){dojo.dnd.Source.superclass.onOutEvent.call(this);dojo.dnd.manager().outSource(this);if(this.isDragging&&this.targetState!="Disabled"){this.onDraggingOut();}},_markTargetAnchor:function(before){if(this.current==this.targetAnchor&&this.before==before){return;}
if(this.targetAnchor){this._removeItemClass(this.targetAnchor,this.before?"Before":"After");}
this.targetAnchor=this.current;this.targetBox=null;this.before=before;if(this.targetAnchor){this._addItemClass(this.targetAnchor,this.before?"Before":"After");}},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}
this._removeItemClass(this.targetAnchor,this.before?"Before":"After");this.targetAnchor=null;this.targetBox=null;this.before=true;},_markDndStatus:function(copy){this._changeState("Source",copy?"Copied":"Moved");},_legalMouseDown:function(e){if(!this.withHandles){return true;}
for(var node=e.target;node;node=node.parentNode){if(dojo.hasClass(node,"dojoDndHandle")){return true;}
if(dojo.hasClass(node,"dojoDndItem")){break;}}
return false;}});dojo.declare("dojo.dnd.Target",dojo.dnd.Source,{constructor:function(node,params){this.isSource=false;dojo.removeClass(this.node,"dojoDndSource");},markupFactory:function(params,node){params._skipStartup=true;return new dojo.dnd.Target(node,params);}});dojo.declare("dojo.dnd.AutoSource",dojo.dnd.Source,{constructor:function(node,params){this.autoSync=true;},markupFactory:function(params,node){params._skipStartup=true;return new dojo.dnd.AutoSource(node,params);}});}
if(!dojo._hasResource["dojox.grid._View"]){dojo._hasResource["dojox.grid._View"]=true;dojo.provide("dojox.grid._View");(function(){var rowIndexTag="gridRowIndex";var gridViewTag="gridView";var getTdIndex=function(td){return td.cellIndex>=0?td.cellIndex:dojo.indexOf(td.parentNode.cells,td);};var getTrIndex=function(tr){return tr.rowIndex>=0?tr.rowIndex:dojo.indexOf(tr.parentNode.childNodes,tr);};var getTr=function(rowOwner,index){return rowOwner&&((rowOwner.rows||0)[index]||rowOwner.childNodes[index]);};var findTable=function(node){for(var n=node;n&&n.tagName!='TABLE';n=n.parentNode);return n;};var ascendDom=function(inNode,inWhile){for(var n=inNode;n&&inWhile(n);n=n.parentNode);return n;};var makeNotTagName=function(inTagName){var name=inTagName.toUpperCase();return function(node){return node.tagName!=name;};};var getStyleText=function(inNode,inStyleText){return inNode.style.cssText==undefined?inNode.getAttribute("style"):inNode.style.cssText;};var Builder=function(view){if(view){this.view=view;this.grid=view.grid;}};dojo.extend(Builder,{view:null,_table:'<table class="dojoxGridRowTable" border="0" cellspacing="0" cellpadding="0" role="wairole:presentation"',getTableArray:function(){var html=[this._table];if(this.view.viewWidth){html.push([' style="width:',this.view.viewWidth,';"'].join(''));}
html.push('>');return html;},generateCellMarkup:function(inCell,inMoreStyles,inMoreClasses,isHeader){var result=[],html;if(isHeader){html=['<th tabIndex="-1" role="wairole:columnheader"'];}else{html=['<td tabIndex="-1" role="wairole:gridcell"'];}
inCell.colSpan&&html.push(' colspan="',inCell.colSpan,'"');inCell.rowSpan&&html.push(' rowspan="',inCell.rowSpan,'"');html.push(' class="dojoxGridCell ');inCell.classes&&html.push(inCell.classes,' ');inMoreClasses&&html.push(inMoreClasses,' ');result.push(html.join(''));result.push('');html=['" idx="',inCell.index,'" style="'];if(inMoreStyles&&inMoreStyles[inMoreStyles.length-1]!=';'){inMoreStyles+=';';}
html.push(inCell.styles,inMoreStyles||'',inCell.hidden?'display:none;':'');inCell.unitWidth&&html.push('width:',inCell.unitWidth,';');result.push(html.join(''));result.push('');html=['"'];inCell.attrs&&html.push(" ",inCell.attrs);html.push('>');result.push(html.join(''));result.push('');result.push('</td>');return result;},isCellNode:function(inNode){return Boolean(inNode&&inNode!=dojo.doc&&dojo.attr(inNode,"idx"));},getCellNodeIndex:function(inCellNode){return inCellNode?Number(dojo.attr(inCellNode,"idx")):-1;},getCellNode:function(inRowNode,inCellIndex){for(var i=0,row;row=getTr(inRowNode.firstChild,i);i++){for(var j=0,cell;cell=row.cells[j];j++){if(this.getCellNodeIndex(cell)==inCellIndex){return cell;}}}},findCellTarget:function(inSourceNode,inTopNode){var n=inSourceNode;while(n&&(!this.isCellNode(n)||(n.offsetParent&&gridViewTag in n.offsetParent.parentNode&&n.offsetParent.parentNode[gridViewTag]!=this.view.id))&&(n!=inTopNode)){n=n.parentNode;}
return n!=inTopNode?n:null},baseDecorateEvent:function(e){e.dispatch='do'+e.type;e.grid=this.grid;e.sourceView=this.view;e.cellNode=this.findCellTarget(e.target,e.rowNode);e.cellIndex=this.getCellNodeIndex(e.cellNode);e.cell=(e.cellIndex>=0?this.grid.getCell(e.cellIndex):null);},findTarget:function(inSource,inTag){var n=inSource;while(n&&(n!=this.domNode)&&(!(inTag in n)||(gridViewTag in n&&n[gridViewTag]!=this.view.id))){n=n.parentNode;}
return(n!=this.domNode)?n:null;},findRowTarget:function(inSource){return this.findTarget(inSource,rowIndexTag);},isIntraNodeEvent:function(e){try{return(e.cellNode&&e.relatedTarget&&dojo.isDescendant(e.relatedTarget,e.cellNode));}catch(x){return false;}},isIntraRowEvent:function(e){try{var row=e.relatedTarget&&this.findRowTarget(e.relatedTarget);return!row&&(e.rowIndex==-1)||row&&(e.rowIndex==row.gridRowIndex);}catch(x){return false;}},dispatchEvent:function(e){if(e.dispatch in this){return this[e.dispatch](e);}},domouseover:function(e){if(e.cellNode&&(e.cellNode!=this.lastOverCellNode)){this.lastOverCellNode=e.cellNode;this.grid.onMouseOver(e);}
this.grid.onMouseOverRow(e);},domouseout:function(e){if(e.cellNode&&(e.cellNode==this.lastOverCellNode)&&!this.isIntraNodeEvent(e,this.lastOverCellNode)){this.lastOverCellNode=null;this.grid.onMouseOut(e);if(!this.isIntraRowEvent(e)){this.grid.onMouseOutRow(e);}}},domousedown:function(e){if(e.cellNode)
this.grid.onMouseDown(e);this.grid.onMouseDownRow(e)}});var ContentBuilder=function(view){Builder.call(this,view);};ContentBuilder.prototype=new Builder();dojo.extend(ContentBuilder,{update:function(){this.prepareHtml();},prepareHtml:function(){var defaultGet=this.grid.get,cells=this.view.structure.cells;for(var j=0,row;(row=cells[j]);j++){for(var i=0,cell;(cell=row[i]);i++){cell.get=cell.get||(cell.value==undefined)&&defaultGet;cell.markup=this.generateCellMarkup(cell,cell.cellStyles,cell.cellClasses,false);}}},generateHtml:function(inDataIndex,inRowIndex){var
html=this.getTableArray(),v=this.view,cells=v.structure.cells,item=this.grid.getItem(inRowIndex);dojox.grid.util.fire(this.view,"onBeforeRow",[inRowIndex,cells]);for(var j=0,row;(row=cells[j]);j++){if(row.hidden||row.header){continue;}
html.push(!row.invisible?'<tr>':'<tr class="dojoxGridInvisible">');for(var i=0,cell,m,cc,cs;(cell=row[i]);i++){m=cell.markup,cc=cell.customClasses=[],cs=cell.customStyles=[];m[5]=cell.format(inRowIndex,item);m[1]=cc.join(' ');m[3]=cs.join(';');html.push.apply(html,m);}
html.push('</tr>');}
html.push('</table>');return html.join('');},decorateEvent:function(e){e.rowNode=this.findRowTarget(e.target);if(!e.rowNode){return false};e.rowIndex=e.rowNode[rowIndexTag];this.baseDecorateEvent(e);e.cell=this.grid.getCell(e.cellIndex);return true;}});var headerMoveable=null;var HeaderBuilder=function(view){Builder.call(this,view);};HeaderBuilder.prototype=new Builder();dojo.extend(HeaderBuilder,{_skipBogusClicks:false,overResizeWidth:4,minColWidth:1,update:function(){this.tableMap=new TableMap(this.view.structure.cells);},generateHtml:function(inGetValue,inValue){var html=this.getTableArray(),cells=this.view.structure.cells;dojox.grid.util.fire(this.view,"onBeforeRow",[-1,cells]);for(var j=0,row;(row=cells[j]);j++){if(row.hidden){continue;}
html.push(!row.invisible?'<tr>':'<tr class="dojoxGridInvisible">');for(var i=0,cell,markup;(cell=row[i]);i++){cell.customClasses=[];cell.customStyles=[];if(this.view.simpleStructure){if(cell.headerClasses){if(cell.headerClasses.indexOf('dojoDndItem')==-1){cell.headerClasses+=' dojoDndItem';}}else{cell.headerClasses='dojoDndItem';}
if(cell.attrs){if(cell.attrs.indexOf("dndType='gridColumn'")==-1){cell.attrs+=" dndType='gridColumn_"+this.grid.id+"'";}}else{cell.attrs="dndType='gridColumn_"+this.grid.id+"'";}}
markup=this.generateCellMarkup(cell,cell.headerStyles,cell.headerClasses,true);markup[5]=(inValue!=undefined?inValue:inGetValue(cell));markup[3]=cell.customStyles.join(';');markup[1]=cell.customClasses.join(' ');html.push(markup.join(''));}
html.push('</tr>');}
html.push('</table>');return html.join('');},getCellX:function(e){var x=e.layerX;if(dojo.isMoz){var n=ascendDom(e.target,makeNotTagName("th"));x-=(n&&n.offsetLeft)||0;var t=e.sourceView.getScrollbarWidth();if(!dojo._isBodyLtr()&&e.sourceView.headerNode.scrollLeft<t)
x-=t;}
var n=ascendDom(e.target,function(){if(!n||n==e.cellNode){return false;}
x+=(n.offsetLeft<0?0:n.offsetLeft);return true;});return x;},decorateEvent:function(e){this.baseDecorateEvent(e);e.rowIndex=-1;e.cellX=this.getCellX(e);return true;},prepareResize:function(e,mod){do{var i=getTdIndex(e.cellNode);e.cellNode=(i?e.cellNode.parentNode.cells[i+mod]:null);e.cellIndex=(e.cellNode?this.getCellNodeIndex(e.cellNode):-1);}while(e.cellNode&&e.cellNode.style.display=="none");return Boolean(e.cellNode);},canResize:function(e){if(!e.cellNode||e.cellNode.colSpan>1){return false;}
var cell=this.grid.getCell(e.cellIndex);return!cell.noresize&&!cell.canResize();},overLeftResizeArea:function(e){if(dojo._isBodyLtr()){return(e.cellIndex>0)&&(e.cellX<this.overResizeWidth)&&this.prepareResize(e,-1);}
var t=e.cellNode&&(e.cellX<this.overResizeWidth);return t;},overRightResizeArea:function(e){if(dojo._isBodyLtr()){return e.cellNode&&(e.cellX>=e.cellNode.offsetWidth-this.overResizeWidth);}
return(e.cellIndex>0)&&(e.cellX>=e.cellNode.offsetWidth-this.overResizeWidth)&&this.prepareResize(e,-1);},domousemove:function(e){if(!headerMoveable){var c=(this.overRightResizeArea(e)?'e-resize':(this.overLeftResizeArea(e)?'w-resize':''));if(c&&!this.canResize(e)){c='not-allowed';}
if(dojo.isIE){var t=e.sourceView.headerNode.scrollLeft;e.sourceView.headerNode.style.cursor=c||'';e.sourceView.headerNode.scrollLeft=t;}else{e.sourceView.headerNode.style.cursor=c||'';}
if(c){dojo.stopEvent(e);}}},domousedown:function(e){if(!headerMoveable){if((this.overRightResizeArea(e)||this.overLeftResizeArea(e))&&this.canResize(e)){this.beginColumnResize(e);}else{this.grid.onMouseDown(e);this.grid.onMouseOverRow(e);}}},doclick:function(e){if(this._skipBogusClicks){dojo.stopEvent(e);return true;}},beginColumnResize:function(e){this.moverDiv=document.createElement("div");dojo.style(this.moverDiv,{position:"absolute",left:0});dojo.body().appendChild(this.moverDiv);var m=headerMoveable=new dojo.dnd.Moveable(this.moverDiv);var spanners=[],nodes=this.tableMap.findOverlappingNodes(e.cellNode);for(var i=0,cell;(cell=nodes[i]);i++){spanners.push({node:cell,index:this.getCellNodeIndex(cell),width:cell.offsetWidth});}
var view=e.sourceView;var adj=dojo._isBodyLtr()?1:-1;var views=e.grid.views.views;var followers=[];for(var i=view.idx+adj,cView;(cView=views[i]);i=i+adj){followers.push({node:cView.headerNode,left:window.parseInt(cView.headerNode.style.left)});}
var table=view.headerContentNode.firstChild;var drag={scrollLeft:e.sourceView.headerNode.scrollLeft,view:view,node:e.cellNode,index:e.cellIndex,w:dojo.contentBox(e.cellNode).w,vw:dojo.contentBox(view.headerNode).w,table:table,tw:dojo.contentBox(table).w,spanners:spanners,followers:followers};m.onMove=dojo.hitch(this,"doResizeColumn",drag);dojo.connect(m,"onMoveStop",dojo.hitch(this,function(){this.endResizeColumn(drag);if(drag.node.releaseCapture){drag.node.releaseCapture();}
headerMoveable.destroy();delete headerMoveable;headerMoveable=null;}));view.convertColPctToFixed();if(e.cellNode.setCapture){e.cellNode.setCapture();}
m.onMouseDown(e);},doResizeColumn:function(inDrag,mover,leftTop){var isLtr=dojo._isBodyLtr();var deltaX=isLtr?leftTop.l:-leftTop.l;var w=inDrag.w+deltaX;var vw=inDrag.vw+deltaX;var tw=inDrag.tw+deltaX;if(w>=this.minColWidth){for(var i=0,s,sw;(s=inDrag.spanners[i]);i++){sw=s.width+deltaX;s.node.style.width=sw+'px';inDrag.view.setColWidth(s.index,sw);}
for(var i=0,f,fl;(f=inDrag.followers[i]);i++){fl=f.left+deltaX;f.node.style.left=fl+'px';}
inDrag.node.style.width=w+'px';inDrag.view.setColWidth(inDrag.index,w);inDrag.view.headerNode.style.width=vw+'px';inDrag.view.setColumnsWidth(tw);if(!isLtr){inDrag.view.headerNode.scrollLeft=inDrag.scrollLeft+deltaX;}}
if(inDrag.view.flexCells&&!inDrag.view.testFlexCells()){var t=findTable(inDrag.node);t&&(t.style.width='');}},endResizeColumn:function(inDrag){dojo._destroyElement(this.moverDiv);delete this.moverDiv;this._skipBogusClicks=true;var conn=dojo.connect(inDrag.view,"update",this,function(){dojo.disconnect(conn);this._skipBogusClicks=false;});setTimeout(dojo.hitch(inDrag.view,"update"),50);}});var TableMap=function(rows){this.mapRows(rows);};dojo.extend(TableMap,{map:null,mapRows:function(inRows){var rowCount=inRows.length;if(!rowCount){return;}
this.map=[];for(var j=0,row;(row=inRows[j]);j++){this.map[j]=[];}
for(var j=0,row;(row=inRows[j]);j++){for(var i=0,x=0,cell,colSpan,rowSpan;(cell=row[i]);i++){while(this.map[j][x]){x++};this.map[j][x]={c:i,r:j};rowSpan=cell.rowSpan||1;colSpan=cell.colSpan||1;for(var y=0;y<rowSpan;y++){for(var s=0;s<colSpan;s++){this.map[j+y][x+s]=this.map[j][x];}}
x+=colSpan;}}},dumpMap:function(){for(var j=0,row,h='';(row=this.map[j]);j++,h=''){for(var i=0,cell;(cell=row[i]);i++){h+=cell.r+','+cell.c+'   ';}}},getMapCoords:function(inRow,inCol){for(var j=0,row;(row=this.map[j]);j++){for(var i=0,cell;(cell=row[i]);i++){if(cell.c==inCol&&cell.r==inRow){return{j:j,i:i};}}}
return{j:-1,i:-1};},getNode:function(inTable,inRow,inCol){var row=inTable&&inTable.rows[inRow];return row&&row.cells[inCol];},_findOverlappingNodes:function(inTable,inRow,inCol){var nodes=[];var m=this.getMapCoords(inRow,inCol);var row=this.map[m.j];for(var j=0,row;(row=this.map[j]);j++){if(j==m.j){continue;}
var rw=row[m.i];var n=(rw?this.getNode(inTable,rw.r,rw.c):null);if(n){nodes.push(n);}}
return nodes;},findOverlappingNodes:function(inNode){return this._findOverlappingNodes(findTable(inNode),getTrIndex(inNode.parentNode),getTdIndex(inNode));}});dojo.declare('dojox.grid._View',[dijit._Widget,dijit._Templated],{defaultWidth:"18em",viewWidth:"",templateString:"<div class=\"dojoxGridView\">\n\t<div class=\"dojoxGridHeader\" dojoAttachPoint=\"headerNode\">\n\t\t<div dojoAttachPoint=\"headerNodeContainer\" style=\"width:9000em\">\n\t\t\t<div dojoAttachPoint=\"headerContentNode\"></div>\n\t\t</div>\n\t</div>\n\t<input type=\"checkbox\" class=\"dojoxGridHiddenFocus\" dojoAttachPoint=\"hiddenFocusNode\" />\n\t<input type=\"checkbox\" class=\"dojoxGridHiddenFocus\" />\n\t<div class=\"dojoxGridScrollbox\" dojoAttachPoint=\"scrollboxNode\">\n\t\t<div class=\"dojoxGridContent\" dojoAttachPoint=\"contentNode\" hidefocus=\"hidefocus\"></div>\n\t</div>\n</div>\n",themeable:false,classTag:'dojoxGrid',marginBottom:0,rowPad:2,_togglingColumn:-1,postMixInProperties:function(){this.rowNodes=[];},postCreate:function(){this.connect(this.scrollboxNode,"onscroll","doscroll");dojox.grid.util.funnelEvents(this.contentNode,this,"doContentEvent",['mouseover','mouseout','click','dblclick','contextmenu','mousedown']);dojox.grid.util.funnelEvents(this.headerNode,this,"doHeaderEvent",['dblclick','mouseover','mouseout','mousemove','mousedown','click','contextmenu']);this.content=new ContentBuilder(this);this.header=new HeaderBuilder(this);if(!dojo._isBodyLtr()){this.headerNodeContainer.style.width="";}},destroy:function(){dojo._destroyElement(this.headerNode);delete this.headerNode;dojo.forEach(this.rowNodes,dojo._destroyElement);this.rowNodes=[];if(this.source){this.source.destroy();}
this.inherited(arguments);},focus:function(){if(dojo.isSafari||dojo.isOpera){this.hiddenFocusNode.focus();}else{this.scrollboxNode.focus();}},setStructure:function(inStructure){var vs=this.structure=inStructure;if(vs.width&&!isNaN(vs.width)){this.viewWidth=vs.width+'em';}else{this.viewWidth=vs.width||(vs.noscroll?'auto':this.viewWidth);}
this.onBeforeRow=vs.onBeforeRow;this.noscroll=vs.noscroll;if(this.noscroll){this.scrollboxNode.style.overflow="hidden";}
this.simpleStructure=Boolean(vs.cells.length==1);this.testFlexCells();this.updateStructure();},testFlexCells:function(){this.flexCells=false;for(var j=0,row;(row=this.structure.cells[j]);j++){for(var i=0,cell;(cell=row[i]);i++){cell.view=this;this.flexCells=this.flexCells||cell.isFlex();}}
return this.flexCells;},updateStructure:function(){this.header.update();this.content.update();},getScrollbarWidth:function(){var hasScrollSpace=this.hasVScrollbar();var overflow=dojo.style(this.scrollboxNode,"overflow");if(this.noscroll||!overflow||overflow=="hidden"){hasScrollSpace=false;}else if(overflow=="scroll"){hasScrollSpace=true;}
return(hasScrollSpace?dojox.html.metrics.getScrollbar().w:0);},getColumnsWidth:function(){return this.headerContentNode.firstChild.offsetWidth;},setColumnsWidth:function(width){this.headerContentNode.firstChild.style.width=width+'px';if(this.viewWidth){this.viewWidth=width+'px';}},getWidth:function(){return this.viewWidth||(this.getColumnsWidth()+this.getScrollbarWidth())+'px';},getContentWidth:function(){return Math.max(0,dojo._getContentBox(this.domNode).w-this.getScrollbarWidth())+'px';},render:function(){this.scrollboxNode.style.height='';this.renderHeader();if(this._togglingColumn>=0){this.setColumnsWidth(this.getColumnsWidth()-this._togglingColumn);this._togglingColumn=-1;}
var cells=this.grid.layout.cells;var getSibling=dojo.hitch(this,function(node,before){var inc=before?-1:1;var idx=this.header.getCellNodeIndex(node)+inc;var cell=cells[idx];while(cell&&cell.getHeaderNode()&&cell.getHeaderNode().style.display=="none"){idx+=inc;cell=cells[idx];}
if(cell){return cell.getHeaderNode();}
return null;});if(this.grid.columnReordering&&this.simpleStructure){if(this.source){this.source.destroy();}
this.source=new dojo.dnd.Source(this.headerContentNode.firstChild.rows[0],{horizontal:true,accept:["gridColumn_"+this.grid.id],viewIndex:this.index,onMouseDown:dojo.hitch(this,function(e){this.header.decorateEvent(e);if((this.header.overRightResizeArea(e)||this.header.overLeftResizeArea(e))&&this.header.canResize(e)&&!headerMoveable){this.header.beginColumnResize(e);}else{if(this.grid.headerMenu){this.grid.headerMenu.onCancel(true);}
if(e.button===(dojo.isIE?1:0)){dojo.dnd.Source.prototype.onMouseDown.call(this.source,e);}}}),_markTargetAnchor:dojo.hitch(this,function(before){var src=this.source;if(src.current==src.targetAnchor&&src.before==before){return;}
if(src.targetAnchor&&getSibling(src.targetAnchor,src.before)){src._removeItemClass(getSibling(src.targetAnchor,src.before),src.before?"After":"Before");}
dojo.dnd.Source.prototype._markTargetAnchor.call(src,before);if(src.targetAnchor&&getSibling(src.targetAnchor,src.before)){src._addItemClass(getSibling(src.targetAnchor,src.before),src.before?"After":"Before");}}),_unmarkTargetAnchor:dojo.hitch(this,function(){var src=this.source;if(!src.targetAnchor){return;}
if(src.targetAnchor&&getSibling(src.targetAnchor,src.before)){src._removeItemClass(getSibling(src.targetAnchor,src.before),src.before?"After":"Before");}
dojo.dnd.Source.prototype._unmarkTargetAnchor.call(src);}),destroy:dojo.hitch(this,function(){dojo.disconnect(this._source_conn);dojo.unsubscribe(this._source_sub);dojo.dnd.Source.prototype.destroy.call(this.source);})});this._source_conn=dojo.connect(this.source,"onDndDrop",this,"_onDndDrop");this._source_sub=dojo.subscribe("/dnd/drop/before",this,"_onDndDropBefore");this.source.startup();}},_onDndDropBefore:function(source,nodes,copy){if(dojo.dnd.manager().target!==this.source){return;}
this.source._targetNode=this.source.targetAnchor;this.source._beforeTarget=this.source.before;var views=this.grid.views.views;var srcView=views[source.viewIndex];var tgtView=views[this.index];if(tgtView!=srcView){var s=srcView.convertColPctToFixed();var t=tgtView.convertColPctToFixed();if(s||t){setTimeout(function(){srcView.update();tgtView.update();},50);}}},_onDndDrop:function(source,nodes,copy){if(dojo.dnd.manager().target!==this.source){if(dojo.dnd.manager().source===this.source){this._removingColumn=true;}
return;}
var getIdx=function(n){return n?dojo.attr(n,"idx"):null;}
var w=dojo.marginBox(nodes[0]).w;if(source.viewIndex!==this.index){var views=this.grid.views.views;var srcView=views[source.viewIndex];var tgtView=views[this.index];if(srcView.viewWidth&&srcView.viewWidth!="auto"){srcView.setColumnsWidth(srcView.getColumnsWidth()-w);}
if(tgtView.viewWidth&&tgtView.viewWidth!="auto"){tgtView.setColumnsWidth(tgtView.getColumnsWidth());}}
var stn=this.source._targetNode;var stb=this.source._beforeTarget;var layout=this.grid.layout;var idx=this.index;delete this.source._targetNode;delete this.source._beforeTarget;window.setTimeout(function(){layout.moveColumn(source.viewIndex,idx,getIdx(nodes[0]),getIdx(stn),stb);},1);},renderHeader:function(){this.headerContentNode.innerHTML=this.header.generateHtml(this._getHeaderContent);if(this.flexCells){this.contentWidth=this.getContentWidth();this.headerContentNode.firstChild.style.width=this.contentWidth;}},_getHeaderContent:function(inCell){var n=inCell.name||inCell.grid.getCellName(inCell);var ret=['<div class="dojoxGridSortNode'];if(inCell.index!=inCell.grid.getSortIndex()){ret.push('">');}else{ret=ret.concat([' ',inCell.grid.sortInfo>0?'dojoxGridSortUp':'dojoxGridSortDown','"><div class="dojoxGridArrowButtonChar">',inCell.grid.sortInfo>0?'&#9650;':'&#9660;','</div><div class="dojoxGridArrowButtonNode"></div>']);}
ret=ret.concat([n,'</div>']);return ret.join('');},resize:function(){this.adaptHeight();this.adaptWidth();},hasHScrollbar:function(reset){if(this._hasHScroll==undefined||reset){if(this.noscroll){this._hasHScroll=false;}else{var style=dojo.style(this.scrollboxNode,"overflow");if(style=="hidden"){this._hasHScroll=false;}else if(style=="scroll"){this._hasHScroll=true;}else{this._hasHScroll=(this.scrollboxNode.offsetWidth<this.contentNode.offsetWidth);}}}
return this._hasHScroll;},hasVScrollbar:function(reset){if(this._hasVScroll==undefined||reset){if(this.noscroll){this._hasVScroll=false;}else{var style=dojo.style(this.scrollboxNode,"overflow");if(style=="hidden"){this._hasVScroll=false;}else if(style=="scroll"){this._hasVScroll=true;}else{this._hasVScroll=(this.scrollboxNode.offsetHeight<this.contentNode.offsetHeight);}}}
return this._hasVScroll;},convertColPctToFixed:function(){var hasPct=false;var cellNodes=dojo.query("th",this.headerContentNode);var fixedWidths=dojo.map(cellNodes,function(c){var w=c.style.width;if(w&&w.slice(-1)=="%"){hasPct=true;return dojo.contentBox(c).w;}else if(w&&w.slice(-2)=="px"){return window.parseInt(w,10);}
return-1;});if(hasPct){dojo.forEach(this.grid.layout.cells,function(cell,idx){if(cell.view==this){var vIdx=cell.layoutIndex;this.setColWidth(idx,fixedWidths[vIdx]);cellNodes[vIdx].style.width=cell.unitWidth;}},this);return true;}
return false;},adaptHeight:function(minusScroll){if(!this.grid._autoHeight){var h=this.domNode.clientHeight;if(minusScroll){h-=dojox.html.metrics.getScrollbar().h;}
dojox.grid.util.setStyleHeightPx(this.scrollboxNode,h);}
this.hasVScrollbar(true);},adaptWidth:function(){if(this.flexCells){this.contentWidth=this.getContentWidth();this.headerContentNode.firstChild.style.width=this.contentWidth;}
var w=this.scrollboxNode.offsetWidth-this.getScrollbarWidth();if(!this._removingColumn){w=Math.max(w,this.getColumnsWidth())+'px';}else{w=Math.min(w,this.getColumnsWidth())+'px';this._removingColumn=false;}
var cn=this.contentNode;cn.style.width=w;this.hasHScrollbar(true);},setSize:function(w,h){var ds=this.domNode.style;var hs=this.headerNode.style;if(w){ds.width=w;hs.width=w;}
ds.height=(h>=0?h+'px':'');},renderRow:function(inRowIndex){var rowNode=this.createRowNode(inRowIndex);this.buildRow(inRowIndex,rowNode);this.grid.edit.restore(this,inRowIndex);if(this._pendingUpdate){window.clearTimeout(this._pendingUpdate);}
this._pendingUpdate=window.setTimeout(dojo.hitch(this,function(){window.clearTimeout(this._pendingUpdate);delete this._pendingUpdate;this.grid._resize();}),50);return rowNode;},createRowNode:function(inRowIndex){var node=document.createElement("div");node.className=this.classTag+'Row';node[gridViewTag]=this.id;node[rowIndexTag]=inRowIndex;this.rowNodes[inRowIndex]=node;return node;},buildRow:function(inRowIndex,inRowNode){this.buildRowContent(inRowIndex,inRowNode);this.styleRow(inRowIndex,inRowNode);},buildRowContent:function(inRowIndex,inRowNode){inRowNode.innerHTML=this.content.generateHtml(inRowIndex,inRowIndex);if(this.flexCells&&this.contentWidth){inRowNode.firstChild.style.width=this.contentWidth;}},rowRemoved:function(inRowIndex){this.grid.edit.save(this,inRowIndex);delete this.rowNodes[inRowIndex];},getRowNode:function(inRowIndex){return this.rowNodes[inRowIndex];},getCellNode:function(inRowIndex,inCellIndex){var row=this.getRowNode(inRowIndex);if(row){return this.content.getCellNode(row,inCellIndex);}},getHeaderCellNode:function(inCellIndex){if(this.headerContentNode){return this.header.getCellNode(this.headerContentNode,inCellIndex);}},styleRow:function(inRowIndex,inRowNode){inRowNode._style=getStyleText(inRowNode);this.styleRowNode(inRowIndex,inRowNode);},styleRowNode:function(inRowIndex,inRowNode){if(inRowNode){this.doStyleRowNode(inRowIndex,inRowNode);}},doStyleRowNode:function(inRowIndex,inRowNode){this.grid.styleRowNode(inRowIndex,inRowNode);},updateRow:function(inRowIndex){var rowNode=this.getRowNode(inRowIndex);if(rowNode){rowNode.style.height='';this.buildRow(inRowIndex,rowNode);}
return rowNode;},updateRowStyles:function(inRowIndex){this.styleRowNode(inRowIndex,this.getRowNode(inRowIndex));},lastTop:0,firstScroll:0,doscroll:function(inEvent){var isLtr=dojo._isBodyLtr();if(this.firstScroll<2){if((!isLtr&&this.firstScroll==1)||(isLtr&&this.firstScroll==0)){var s=dojo.marginBox(this.headerNodeContainer);if(dojo.isIE){this.headerNodeContainer.style.width=s.w+this.getScrollbarWidth()+'px';}else if(dojo.isMoz){this.headerNodeContainer.style.width=s.w-this.getScrollbarWidth()+'px';this.scrollboxNode.scrollLeft=isLtr?this.scrollboxNode.clientWidth-this.scrollboxNode.scrollWidth:this.scrollboxNode.scrollWidth-this.scrollboxNode.clientWidth;}}
this.firstScroll++;}
this.headerNode.scrollLeft=this.scrollboxNode.scrollLeft;var top=this.scrollboxNode.scrollTop;if(top!=this.lastTop){this.grid.scrollTo(top);}},setScrollTop:function(inTop){this.lastTop=inTop;this.scrollboxNode.scrollTop=inTop;return this.scrollboxNode.scrollTop;},doContentEvent:function(e){if(this.content.decorateEvent(e)){this.grid.onContentEvent(e);}},doHeaderEvent:function(e){if(this.header.decorateEvent(e)){this.grid.onHeaderEvent(e);}},dispatchContentEvent:function(e){return this.content.dispatchEvent(e);},dispatchHeaderEvent:function(e){return this.header.dispatchEvent(e);},setColWidth:function(inIndex,inWidth){this.grid.setCellWidth(inIndex,inWidth+'px');},update:function(){var left=this.scrollboxNode.scrollLeft;this.content.update();this.grid.update();this.scrollboxNode.scrollLeft=left;this.headerNode.scrollLeft=left;}});dojo.declare("dojox.grid._GridAvatar",dojo.dnd.Avatar,{construct:function(){var dd=dojo.doc;var a=dd.createElement("table");a.cellPadding=a.cellSpacing="0";a.className="dojoxGridDndAvatar";a.style.position="absolute";a.style.zIndex=1999;a.style.margin="0px";var b=dd.createElement("tbody");var tr=dd.createElement("tr");var td=dd.createElement("td");var img=dd.createElement("td");tr.className="dojoxGridDndAvatarItem";img.className="dojoxGridDndAvatarItemImage";img.style.width="16px";var source=this.manager.source,node;if(source.creator){node=source._normailzedCreator(source.getItem(this.manager.nodes[0].id).data,"avatar").node;}else{node=this.manager.nodes[0].cloneNode(true);if(node.tagName.toLowerCase()=="tr"){var table=dd.createElement("table"),tbody=dd.createElement("tbody");tbody.appendChild(node);table.appendChild(tbody);node=table;}else if(node.tagName.toLowerCase()=="th"){var table=dd.createElement("table"),tbody=dd.createElement("tbody"),r=dd.createElement("tr");table.cellPadding=table.cellSpacing="0";r.appendChild(node);tbody.appendChild(r);table.appendChild(tbody);node=table;}}
node.id="";td.appendChild(node);tr.appendChild(img);tr.appendChild(td);dojo.style(tr,"opacity",0.9);b.appendChild(tr);a.appendChild(b);this.node=a;var m=dojo.dnd.manager();this.oldOffsetY=m.OFFSET_Y;m.OFFSET_Y=1;},destroy:function(){dojo.dnd.manager().OFFSET_Y=this.oldOffsetY;this.inherited(arguments);}});var oldMakeAvatar=dojo.dnd.manager().makeAvatar;dojo.dnd.manager().makeAvatar=function(){var src=this.source;if(src.viewIndex!==undefined){return new dojox.grid._GridAvatar(this);}
return oldMakeAvatar.call(dojo.dnd.manager());}})();}
if(!dojo._hasResource["dojox.grid._RowSelector"]){dojo._hasResource["dojox.grid._RowSelector"]=true;dojo.provide("dojox.grid._RowSelector");dojo.declare('dojox.grid._RowSelector',dojox.grid._View,{defaultWidth:"2em",noscroll:true,padBorderWidth:2,buildRendering:function(){this.inherited('buildRendering',arguments);this.scrollboxNode.style.overflow="hidden";this.headerNode.style.visibility="hidden";},getWidth:function(){return this.viewWidth||this.defaultWidth;},buildRowContent:function(inRowIndex,inRowNode){var w=this.contentNode.offsetWidth-this.padBorderWidth
inRowNode.innerHTML='<table class="dojoxGridRowbarTable" style="width:'+w+'px;" border="0" cellspacing="0" cellpadding="0" role="wairole:presentation"><tr><td class="dojoxGridRowbarInner">&nbsp;</td></tr></table>';},renderHeader:function(){},resize:function(){this.adaptHeight();},adaptWidth:function(){},doStyleRowNode:function(inRowIndex,inRowNode){var n=["dojoxGridRowbar"];if(this.grid.rows.isOver(inRowIndex)){n.push("dojoxGridRowbarOver");}
if(this.grid.selection.isSelected(inRowIndex)){n.push("dojoxGridRowbarSelected");}
inRowNode.className=n.join(" ");},domouseover:function(e){this.grid.onMouseOverRow(e);},domouseout:function(e){if(!this.isIntraRowEvent(e)){this.grid.onMouseOutRow(e);}}});}
if(!dojo._hasResource["dojox.grid._Layout"]){dojo._hasResource["dojox.grid._Layout"]=true;dojo.provide("dojox.grid._Layout");dojo.declare("dojox.grid._Layout",null,{constructor:function(inGrid){this.grid=inGrid;},cells:[],structure:null,defaultWidth:'6em',moveColumn:function(sourceViewIndex,destViewIndex,cellIndex,targetIndex,before){var source_cells=this.structure[sourceViewIndex].cells[0];var dest_cells=this.structure[destViewIndex].cells[0];var cell=null;var cell_ri=0;var target_ri=0;for(var i=0,c;c=source_cells[i];i++){if(c.index==cellIndex){cell_ri=i;break;}}
cell=source_cells.splice(cell_ri,1)[0];cell.view=this.grid.views.views[destViewIndex];for(i=0,c=null;c=dest_cells[i];i++){if(c.index==targetIndex){target_ri=i;break;}}
if(!before){target_ri+=1;}
dest_cells.splice(target_ri,0,cell);var sortedCell=this.grid.getCell(this.grid.getSortIndex());if(sortedCell){sortedCell._currentlySorted=this.grid.getSortAsc();}
this.cells=[];var cellIndex=0;for(var i=0,v;v=this.structure[i];i++){for(var j=0,cs;cs=v.cells[j];j++){for(var k=0,c;c=cs[k];k++){c.index=cellIndex;this.cells.push(c);if("_currentlySorted"in c){var si=cellIndex+1;si*=c._currentlySorted?1:-1;this.grid.sortInfo=si;delete c._currentlySorted;}
cellIndex++;}}}
this.grid.setupHeaderMenu();},setColumnVisibility:function(columnIndex,visible){var cell=this.cells[columnIndex];if(cell.hidden==visible){cell.hidden=!visible;var v=cell.view,w=v.viewWidth;if(w&&w!="auto"){v._togglingColumn=dojo.marginBox(cell.getHeaderNode()).w||0;}
v.update();return true;}else{return false;}},addCellDef:function(inRowIndex,inCellIndex,inDef){var self=this;var getCellWidth=function(inDef){var w=0;if(inDef.colSpan>1){w=0;}else if(!isNaN(inDef.width)){w=inDef.width+"em";}else{w=inDef.width||self.defaultWidth;}
return w;};var props={grid:this.grid,subrow:inRowIndex,layoutIndex:inCellIndex,index:this.cells.length};if(inDef&&inDef instanceof dojox.grid.cells._Base){var new_cell=dojo.clone(inDef);props.unitWidth=getCellWidth(new_cell._props);new_cell=dojo.mixin(new_cell,this._defaultCellProps,inDef._props,props);return new_cell;}
var cell_type=inDef.type||this._defaultCellProps.type||dojox.grid.cells.Cell;props.unitWidth=getCellWidth(inDef);return new cell_type(dojo.mixin({},this._defaultCellProps,inDef,props));},addRowDef:function(inRowIndex,inDef){var result=[];var relSum=0,pctSum=0,doRel=true;for(var i=0,def,cell;(def=inDef[i]);i++){cell=this.addCellDef(inRowIndex,i,def);result.push(cell);this.cells.push(cell);if(doRel&&cell.relWidth){relSum+=cell.relWidth;}else if(cell.width){var w=cell.width;if(typeof w=="string"&&w.slice(-1)=="%"){pctSum+=window.parseInt(w,10);}else if(w=="auto"){doRel=false;}}}
if(relSum&&doRel){dojo.forEach(result,function(cell){if(cell.relWidth){cell.width=cell.unitWidth=((cell.relWidth/relSum)*(100-pctSum))+"%";}});}
return result;},addRowsDef:function(inDef){var result=[];if(dojo.isArray(inDef)){if(dojo.isArray(inDef[0])){for(var i=0,row;inDef&&(row=inDef[i]);i++){result.push(this.addRowDef(i,row));}}else{result.push(this.addRowDef(0,inDef));}}
return result;},addViewDef:function(inDef){this._defaultCellProps=inDef.defaultCell||{};return dojo.mixin({},inDef,{cells:this.addRowsDef(inDef.rows||inDef.cells)});},setStructure:function(inStructure){this.fieldIndex=0;this.cells=[];var s=this.structure=[];if(this.grid.rowSelector){var sel={type:dojox._scopeName+".grid._RowSelector"};if(dojo.isString(this.grid.rowSelector)){var width=this.grid.rowSelector;if(width=="false"){sel=null;}else if(width!="true"){sel['width']=width;}}else{if(!this.grid.rowSelector){sel=null;}}
if(sel){s.push(this.addViewDef(sel));}}
var isCell=function(def){return("name"in def||"field"in def||"get"in def);};var isRowDef=function(def){if(dojo.isArray(def)){if(dojo.isArray(def[0])||isCell(def[0])){return true;}}
return false;};var isView=function(def){return(def!=null&&dojo.isObject(def)&&("cells"in def||"rows"in def||("type"in def&&!isCell(def))));};if(dojo.isArray(inStructure)){var hasViews=false;for(var i=0,st;(st=inStructure[i]);i++){if(isView(st)){hasViews=true;break;}}
if(!hasViews){s.push(this.addViewDef({cells:inStructure}));}else{for(var i=0,st;(st=inStructure[i]);i++){if(isRowDef(st)){s.push(this.addViewDef({cells:st}));}else if(isView(st)){s.push(this.addViewDef(st));}}}}else if(isView(inStructure)){s.push(this.addViewDef(inStructure));}
this.cellCount=this.cells.length;this.grid.setupHeaderMenu();}});}
if(!dojo._hasResource["dojox.grid._ViewManager"]){dojo._hasResource["dojox.grid._ViewManager"]=true;dojo.provide("dojox.grid._ViewManager");dojo.declare('dojox.grid._ViewManager',null,{constructor:function(inGrid){this.grid=inGrid;},defaultWidth:200,views:[],resize:function(){this.onEach("resize");},render:function(){this.onEach("render");},addView:function(inView){inView.idx=this.views.length;this.views.push(inView);},destroyViews:function(){for(var i=0,v;v=this.views[i];i++){v.destroy();}
this.views=[];},getContentNodes:function(){var nodes=[];for(var i=0,v;v=this.views[i];i++){nodes.push(v.contentNode);}
return nodes;},forEach:function(inCallback){for(var i=0,v;v=this.views[i];i++){inCallback(v,i);}},onEach:function(inMethod,inArgs){inArgs=inArgs||[];for(var i=0,v;v=this.views[i];i++){if(inMethod in v){v[inMethod].apply(v,inArgs);}}},normalizeHeaderNodeHeight:function(){var rowNodes=[];for(var i=0,v;(v=this.views[i]);i++){if(v.headerContentNode.firstChild){rowNodes.push(v.headerContentNode);}}
this.normalizeRowNodeHeights(rowNodes);},normalizeRowNodeHeights:function(inRowNodes){var h=0;for(var i=0,n,o;(n=inRowNodes[i]);i++){h=Math.max(h,dojo.marginBox(n.firstChild).h);}
h=(h>=0?h:0);for(var i=0,n;(n=inRowNodes[i]);i++){dojo.marginBox(n.firstChild,{h:h});}
if(inRowNodes&&inRowNodes[0]&&inRowNodes[0].parentNode){inRowNodes[0].parentNode.offsetHeight;}},resetHeaderNodeHeight:function(){for(var i=0,v,n;(v=this.views[i]);i++){n=v.headerContentNode.firstChild;if(n){n.style.height="";}}},renormalizeRow:function(inRowIndex){var rowNodes=[];for(var i=0,v,n;(v=this.views[i])&&(n=v.getRowNode(inRowIndex));i++){n.firstChild.style.height='';rowNodes.push(n);}
this.normalizeRowNodeHeights(rowNodes);},getViewWidth:function(inIndex){return this.views[inIndex].getWidth()||this.defaultWidth;},measureHeader:function(){this.resetHeaderNodeHeight();this.forEach(function(inView){inView.headerContentNode.style.height='';});var h=0;this.forEach(function(inView){h=Math.max(inView.headerNode.offsetHeight,h);});return h;},measureContent:function(){var h=0;this.forEach(function(inView){h=Math.max(inView.domNode.offsetHeight,h);});return h;},findClient:function(inAutoWidth){var c=this.grid.elasticView||-1;if(c<0){for(var i=1,v;(v=this.views[i]);i++){if(v.viewWidth){for(i=1;(v=this.views[i]);i++){if(!v.viewWidth){c=i;break;}}
break;}}}
if(c<0){c=Math.floor(this.views.length/2);}
return c;},arrange:function(l,w){var i,v,vw,len=this.views.length;var c=(w<=0?len:this.findClient());var setPosition=function(v,l){var ds=v.domNode.style;var hs=v.headerNode.style;if(!dojo._isBodyLtr()){ds.right=l+'px';hs.right=l+'px';}else{ds.left=l+'px';hs.left=l+'px';}
ds.top=0+'px';hs.top=0;}
for(i=0;(v=this.views[i])&&(i<c);i++){vw=this.getViewWidth(i);v.setSize(vw,0);setPosition(v,l);if(v.headerContentNode&&v.headerContentNode.firstChild){vw=v.getColumnsWidth()+v.getScrollbarWidth();}else{vw=v.domNode.offsetWidth;}
l+=vw;}
i++;var r=w;for(var j=len-1;(v=this.views[j])&&(i<=j);j--){vw=this.getViewWidth(j);v.setSize(vw,0);vw=v.domNode.offsetWidth;r-=vw;setPosition(v,r);}
if(c<len){v=this.views[c];vw=Math.max(1,r-l);v.setSize(vw+'px',0);setPosition(v,l);}
return l;},renderRow:function(inRowIndex,inNodes){var rowNodes=[];for(var i=0,v,n,rowNode;(v=this.views[i])&&(n=inNodes[i]);i++){rowNode=v.renderRow(inRowIndex);n.appendChild(rowNode);rowNodes.push(rowNode);}
this.normalizeRowNodeHeights(rowNodes);},rowRemoved:function(inRowIndex){this.onEach("rowRemoved",[inRowIndex]);},updateRow:function(inRowIndex){for(var i=0,v;v=this.views[i];i++){v.updateRow(inRowIndex);}
this.renormalizeRow(inRowIndex);},updateRowStyles:function(inRowIndex){this.onEach("updateRowStyles",[inRowIndex]);},setScrollTop:function(inTop){var top=inTop;for(var i=0,v;v=this.views[i];i++){top=v.setScrollTop(inTop);}
return top;},getFirstScrollingView:function(){for(var i=0,v;(v=this.views[i]);i++){if(v.hasHScrollbar()||v.hasVScrollbar()){return v;}}}});}
if(!dojo._hasResource["dojox.grid._RowManager"]){dojo._hasResource["dojox.grid._RowManager"]=true;dojo.provide("dojox.grid._RowManager");(function(){var setStyleText=function(inNode,inStyleText){if(inNode.style.cssText==undefined){inNode.setAttribute("style",inStyleText);}else{inNode.style.cssText=inStyleText;}};dojo.declare("dojox.grid._RowManager",null,{constructor:function(inGrid){this.grid=inGrid;},linesToEms:2,overRow:-2,prepareStylingRow:function(inRowIndex,inRowNode){return{index:inRowIndex,node:inRowNode,odd:Boolean(inRowIndex&1),selected:this.grid.selection.isSelected(inRowIndex),over:this.isOver(inRowIndex),customStyles:"",customClasses:"dojoxGridRow"}},styleRowNode:function(inRowIndex,inRowNode){var row=this.prepareStylingRow(inRowIndex,inRowNode);this.grid.onStyleRow(row);this.applyStyles(row);},applyStyles:function(inRow){var i=inRow;i.node.className=i.customClasses;var h=i.node.style.height;setStyleText(i.node,i.customStyles+';'+(i.node._style||''));i.node.style.height=h;},updateStyles:function(inRowIndex){this.grid.updateRowStyles(inRowIndex);},setOverRow:function(inRowIndex){var last=this.overRow;this.overRow=inRowIndex;if((last!=this.overRow)&&(last>=0)){this.updateStyles(last);}
this.updateStyles(this.overRow);},isOver:function(inRowIndex){return(this.overRow==inRowIndex);}});})();}
if(!dojo._hasResource["dojox.grid._FocusManager"]){dojo._hasResource["dojox.grid._FocusManager"]=true;dojo.provide("dojox.grid._FocusManager");dojo.declare("dojox.grid._FocusManager",null,{constructor:function(inGrid){this.grid=inGrid;this.cell=null;this.rowIndex=-1;this._connects=[];this._connects.push(dojo.connect(this.grid.domNode,"onfocus",this,"doFocus"));this._connects.push(dojo.connect(this.grid.domNode,"onblur",this,"doBlur"));this._connects.push(dojo.connect(this.grid.lastFocusNode,"onfocus",this,"doLastNodeFocus"));this._connects.push(dojo.connect(this.grid.lastFocusNode,"onblur",this,"doLastNodeBlur"));},destroy:function(){dojo.forEach(this._connects,dojo.disconnect);delete this.grid;delete this.cell;},_colHeadNode:null,tabbingOut:false,focusClass:"dojoxGridCellFocus",focusView:null,initFocusView:function(){this.focusView=this.grid.views.getFirstScrollingView();this._initColumnHeaders();},isFocusCell:function(inCell,inRowIndex){return(this.cell==inCell)&&(this.rowIndex==inRowIndex);},isLastFocusCell:function(){return(this.rowIndex==this.grid.rowCount-1)&&(this.cell.index==this.grid.layout.cellCount-1);},isFirstFocusCell:function(){return(this.rowIndex==0)&&(this.cell.index==0);},isNoFocusCell:function(){return(this.rowIndex<0)||!this.cell;},isNavHeader:function(){return(!!this._colHeadNode);},getHeaderIndex:function(){if(this._colHeadNode){return dojo.indexOf(this._findHeaderCells(),this._colHeadNode);}else{return-1;}},_focusifyCellNode:function(inBork){var n=this.cell&&this.cell.getNode(this.rowIndex);if(n){dojo.toggleClass(n,this.focusClass,inBork);if(inBork){var sl=this.scrollIntoView();try{if(!this.grid.edit.isEditing()){dojox.grid.util.fire(n,"focus");if(sl){this.cell.view.scrollboxNode.scrollLeft=sl;}}}catch(e){}}}},_initColumnHeaders:function(){this._connects.push(dojo.connect(this.grid.viewsHeaderNode,"onblur",this,"doBlurHeader"));var headers=this._findHeaderCells();for(var i=0;i<headers.length;i++){this._connects.push(dojo.connect(headers[i],"onfocus",this,"doColHeaderFocus"));this._connects.push(dojo.connect(headers[i],"onblur",this,"doColHeaderBlur"));}},_findHeaderCells:function(){var allHeads=dojo.query("th",this.grid.viewsHeaderNode);var headers=[];for(var i=0;i<allHeads.length;i++){var aHead=allHeads[i];var hasTabIdx=dojo.hasAttr(aHead,"tabindex");var tabindex=dojo.attr(aHead,"tabindex");if(hasTabIdx&&tabindex<0){headers.push(aHead);}}
return headers;},scrollIntoView:function(){var info=(this.cell?this._scrollInfo(this.cell):null);if(!info){return null;}
var rt=this.grid.scroller.findScrollTop(this.rowIndex);if(info.n.offsetLeft+info.n.offsetWidth>info.sr.l+info.sr.w){info.s.scrollLeft=info.n.offsetLeft+info.n.offsetWidth-info.sr.w;}else if(info.n.offsetLeft<info.sr.l){info.s.scrollLeft=info.n.offsetLeft;}
if(rt+info.r.offsetHeight>info.sr.t+info.sr.h){this.grid.setScrollTop(rt+info.r.offsetHeight-info.sr.h);}else if(rt<info.sr.t){this.grid.setScrollTop(rt);}
return info.s.scrollLeft;},_scrollInfo:function(cell,domNode){if(cell){var cl=cell,sbn=cl.view.scrollboxNode,sbnr={w:sbn.clientWidth,l:sbn.scrollLeft,t:sbn.scrollTop,h:sbn.clientHeight},rn=cl.view.getRowNode(this.rowIndex);return{c:cl,s:sbn,sr:sbnr,n:(domNode?domNode:cell.getNode(this.rowIndex)),r:rn};}
return null;},_scrollHeader:function(currentIdx){var info=null;if(this._colHeadNode){info=this._scrollInfo(this.grid.getCell(currentIdx),this._colHeadNode);}
if(info){if(info.n.offsetLeft+info.n.offsetWidth>info.sr.l+info.sr.w){info.s.scrollLeft=info.n.offsetLeft+info.n.offsetWidth-info.sr.w;}else if(info.n.offsetLeft<info.sr.l){info.s.scrollLeft=info.n.offsetLeft;}}},styleRow:function(inRow){return;},setFocusIndex:function(inRowIndex,inCellIndex){this.setFocusCell(this.grid.getCell(inCellIndex),inRowIndex);},setFocusCell:function(inCell,inRowIndex){if(inCell&&!this.isFocusCell(inCell,inRowIndex)){this.tabbingOut=false;this._colHeadNode=null;this.focusGridView();this._focusifyCellNode(false);this.cell=inCell;this.rowIndex=inRowIndex;this._focusifyCellNode(true);}
if(dojo.isOpera){setTimeout(dojo.hitch(this.grid,'onCellFocus',this.cell,this.rowIndex),1);}else{this.grid.onCellFocus(this.cell,this.rowIndex);}},next:function(){var row=this.rowIndex,col=this.cell.index+1,cc=this.grid.layout.cellCount-1,rc=this.grid.rowCount-1;if(col>cc){col=0;row++;}
if(row>rc){col=cc;row=rc;}
this.setFocusIndex(row,col);},previous:function(){var row=(this.rowIndex||0),col=(this.cell.index||0)-1;if(col<0){col=this.grid.layout.cellCount-1;row--;}
if(row<0){row=0;col=0;}
this.setFocusIndex(row,col);},move:function(inRowDelta,inColDelta){if(this.isNavHeader()){var headers=this._findHeaderCells();var currentIdx=dojo.indexOf(headers,this._colHeadNode);currentIdx+=inColDelta;if((currentIdx>=0)&&(currentIdx<headers.length)){this._colHeadNode=headers[currentIdx];this._colHeadNode.focus();this._scrollHeader(currentIdx);}}else{var rc=this.grid.rowCount-1,cc=this.grid.layout.cellCount-1,r=this.rowIndex,i=this.cell.index,row=Math.min(rc,Math.max(0,r+inRowDelta)),col=Math.min(cc,Math.max(0,i+inColDelta));this.setFocusIndex(row,col);if(inRowDelta){this.grid.updateRow(r);}}},previousKey:function(e){if(!this.isNavHeader()){this.focusHeader();dojo.stopEvent(e);}else if(this.grid.edit.isEditing()){dojo.stopEvent(e);this.previous();}else{this.tabOut(this.grid.domNode);}},nextKey:function(e){if(e.target===this.grid.domNode){this.focusHeader();dojo.stopEvent(e);}else if(this.isNavHeader()){this._colHeadNode=null;if(this.isNoFocusCell()){this.setFocusIndex(0,0);}else if(this.cell){this.focusGrid();}}else if(this.grid.edit.isEditing()){dojo.stopEvent(e);this.next();}else{this.tabOut(this.grid.lastFocusNode);}},tabOut:function(inFocusNode){this.tabbingOut=true;inFocusNode.focus();},focusGridView:function(){dojox.grid.util.fire(this.focusView,"focus");},focusGrid:function(inSkipFocusCell){this.focusGridView();this._focusifyCellNode(true);},focusHeader:function(){var headerNodes=this._findHeaderCells();if(this.isNoFocusCell()){this._colHeadNode=headerNodes[0];}else{this._colHeadNode=headerNodes[this.cell.index];}
if(this._colHeadNode){this._colHeadNode.focus();this._focusifyCellNode(false);}},doFocus:function(e){if(e&&e.target!=e.currentTarget){dojo.stopEvent(e);return;}
if(!this.tabbingOut){this.focusHeader();}
this.tabbingOut=false;dojo.stopEvent(e);},doBlur:function(e){dojo.stopEvent(e);},doBlurHeader:function(e){dojo.stopEvent(e);},doLastNodeFocus:function(e){if(this.tabbingOut){this._focusifyCellNode(false);}else{this._focusifyCellNode(true);}
this.tabbingOut=false;dojo.stopEvent(e);},doLastNodeBlur:function(e){dojo.stopEvent(e);},doColHeaderFocus:function(e){dojo.toggleClass(e.target,this.focusClass,true);},doColHeaderBlur:function(e){dojo.toggleClass(e.target,this.focusClass,false);}});}
if(!dojo._hasResource["dojox.grid._EditManager"]){dojo._hasResource["dojox.grid._EditManager"]=true;dojo.provide("dojox.grid._EditManager");dojo.declare("dojox.grid._EditManager",null,{constructor:function(inGrid){this.grid=inGrid;this.connections=[];if(dojo.isIE){this.connections.push(dojo.connect(document.body,"onfocus",dojo.hitch(this,"_boomerangFocus")));}},info:{},destroy:function(){dojo.forEach(this.connections,dojo.disconnect);},cellFocus:function(inCell,inRowIndex){if(this.grid.singleClickEdit||this.isEditRow(inRowIndex)){this.setEditCell(inCell,inRowIndex);}else{this.apply();}
if(this.isEditing()||(inCell&&inCell.editable&&inCell.alwaysEditing)){this._focusEditor(inCell,inRowIndex);}},rowClick:function(e){if(this.isEditing()&&!this.isEditRow(e.rowIndex)){this.apply();}},styleRow:function(inRow){if(inRow.index==this.info.rowIndex){inRow.customClasses+=' dojoxGridRowEditing';}},dispatchEvent:function(e){var c=e.cell,ed=(c&&c["editable"])?c:0;return ed&&ed.dispatchEvent(e.dispatch,e);},isEditing:function(){return this.info.rowIndex!==undefined;},isEditCell:function(inRowIndex,inCellIndex){return(this.info.rowIndex===inRowIndex)&&(this.info.cell.index==inCellIndex);},isEditRow:function(inRowIndex){return this.info.rowIndex===inRowIndex;},setEditCell:function(inCell,inRowIndex){if(!this.isEditCell(inRowIndex,inCell.index)&&this.grid.canEdit&&this.grid.canEdit(inCell,inRowIndex)){this.start(inCell,inRowIndex,this.isEditRow(inRowIndex)||inCell.editable);}},_focusEditor:function(inCell,inRowIndex){dojox.grid.util.fire(inCell,"focus",[inRowIndex]);},focusEditor:function(){if(this.isEditing()){this._focusEditor(this.info.cell,this.info.rowIndex);}},_boomerangWindow:500,_shouldCatchBoomerang:function(){return this._catchBoomerang>new Date().getTime();},_boomerangFocus:function(){if(this._shouldCatchBoomerang()){this.grid.focus.focusGrid();this.focusEditor();this._catchBoomerang=0;}},_doCatchBoomerang:function(){if(dojo.isIE){this._catchBoomerang=new Date().getTime()+this._boomerangWindow;}},start:function(inCell,inRowIndex,inEditing){this.grid.beginUpdate();this.editorApply();if(this.isEditing()&&!this.isEditRow(inRowIndex)){this.applyRowEdit();this.grid.updateRow(inRowIndex);}
if(inEditing){this.info={cell:inCell,rowIndex:inRowIndex};this.grid.doStartEdit(inCell,inRowIndex);this.grid.updateRow(inRowIndex);}else{this.info={};}
this.grid.endUpdate();this.grid.focus.focusGrid();this._focusEditor(inCell,inRowIndex);this._doCatchBoomerang();},_editorDo:function(inMethod){var c=this.info.cell
c&&c.editable&&c[inMethod](this.info.rowIndex);},editorApply:function(){this._editorDo("apply");},editorCancel:function(){this._editorDo("cancel");},applyCellEdit:function(inValue,inCell,inRowIndex){if(this.grid.canEdit(inCell,inRowIndex)){this.grid.doApplyCellEdit(inValue,inRowIndex,inCell.field);}},applyRowEdit:function(){this.grid.doApplyEdit(this.info.rowIndex,this.info.cell.field);},apply:function(){if(this.isEditing()){this.grid.beginUpdate();this.editorApply();this.applyRowEdit();this.info={};this.grid.endUpdate();this.grid.focus.focusGrid();this._doCatchBoomerang();}},cancel:function(){if(this.isEditing()){this.grid.beginUpdate();this.editorCancel();this.info={};this.grid.endUpdate();this.grid.focus.focusGrid();this._doCatchBoomerang();}},save:function(inRowIndex,inView){var c=this.info.cell;if(this.isEditRow(inRowIndex)&&(!inView||c.view==inView)&&c.editable){c.save(c,this.info.rowIndex);}},restore:function(inView,inRowIndex){var c=this.info.cell;if(this.isEditRow(inRowIndex)&&c.view==inView&&c.editable){c.restore(c,this.info.rowIndex);}}});}
if(!dojo._hasResource['dojox.grid.Selection']){dojo._hasResource['dojox.grid.Selection']=true;dojo.provide('dojox.grid.Selection');dojo.declare("dojox.grid.Selection",null,{constructor:function(inGrid){this.grid=inGrid;this.selected=[];this.setMode(inGrid.selectionMode);},mode:'extended',selected:null,updating:0,selectedIndex:-1,setMode:function(mode){if(this.selected.length){this.deselectAll();}
if(mode!='extended'&&mode!='multiple'&&mode!='single'&&mode!='none'){this.mode='extended';}else{this.mode=mode;}},onCanSelect:function(inIndex){return this.grid.onCanSelect(inIndex);},onCanDeselect:function(inIndex){return this.grid.onCanDeselect(inIndex);},onSelected:function(inIndex){},onDeselected:function(inIndex){},onChanging:function(){},onChanged:function(){},isSelected:function(inIndex){if(this.mode=='none'){return false;}
return this.selected[inIndex];},getFirstSelected:function(){if(!this.selected.length||this.mode=='none'){return-1;}
for(var i=0,l=this.selected.length;i<l;i++){if(this.selected[i]){return i;}}
return-1;},getNextSelected:function(inPrev){if(this.mode=='none'){return-1;}
for(var i=inPrev+1,l=this.selected.length;i<l;i++){if(this.selected[i]){return i;}}
return-1;},getSelected:function(){var result=[];for(var i=0,l=this.selected.length;i<l;i++){if(this.selected[i]){result.push(i);}}
return result;},getSelectedCount:function(){var c=0;for(var i=0;i<this.selected.length;i++){if(this.selected[i]){c++;}}
return c;},_beginUpdate:function(){if(this.updating==0){this.onChanging();}
this.updating++;},_endUpdate:function(){this.updating--;if(this.updating==0){this.onChanged();}},select:function(inIndex){if(this.mode=='none'){return;}
if(this.mode!='multiple'){this.deselectAll(inIndex);this.addToSelection(inIndex);}else{this.toggleSelect(inIndex);}},addToSelection:function(inIndex){if(this.mode=='none'){return;}
inIndex=Number(inIndex);if(this.selected[inIndex]){this.selectedIndex=inIndex;}else{if(this.onCanSelect(inIndex)!==false){this.selectedIndex=inIndex;this._beginUpdate();this.selected[inIndex]=true;this.onSelected(inIndex);this._endUpdate();}}},deselect:function(inIndex){if(this.mode=='none'){return;}
inIndex=Number(inIndex);if(this.selectedIndex==inIndex){this.selectedIndex=-1;}
if(this.selected[inIndex]){if(this.onCanDeselect(inIndex)===false){return;}
this._beginUpdate();delete this.selected[inIndex];this.onDeselected(inIndex);this._endUpdate();}},setSelected:function(inIndex,inSelect){this[(inSelect?'addToSelection':'deselect')](inIndex);},toggleSelect:function(inIndex){this.setSelected(inIndex,!this.selected[inIndex])},_range:function(inFrom,inTo,func){var s=(inFrom>=0?inFrom:inTo),e=inTo;if(s>e){e=s;s=inTo;}
for(var i=s;i<=e;i++){func(i);}},selectRange:function(inFrom,inTo){this._range(inFrom,inTo,dojo.hitch(this,"addToSelection"));},deselectRange:function(inFrom,inTo){this._range(inFrom,inTo,dojo.hitch(this,"deselect"));},insert:function(inIndex){this.selected.splice(inIndex,0,false);if(this.selectedIndex>=inIndex){this.selectedIndex++;}},remove:function(inIndex){this.selected.splice(inIndex,1);if(this.selectedIndex>=inIndex){this.selectedIndex--;}},deselectAll:function(inExcept){for(var i in this.selected){if((i!=inExcept)&&(this.selected[i]===true)){this.deselect(i);}}},clickSelect:function(inIndex,inCtrlKey,inShiftKey){if(this.mode=='none'){return;}
this._beginUpdate();if(this.mode!='extended'){this.select(inIndex);}else{var lastSelected=this.selectedIndex;if(!inCtrlKey){this.deselectAll(inIndex);}
if(inShiftKey){this.selectRange(lastSelected,inIndex);}else if(inCtrlKey){this.toggleSelect(inIndex);}else{this.addToSelection(inIndex)}}
this._endUpdate();},clickSelectEvent:function(e){this.clickSelect(e.rowIndex,e.ctrlKey,e.shiftKey);},clear:function(){this._beginUpdate();this.deselectAll();this._endUpdate();}});}
if(!dojo._hasResource["dojox.grid._Events"]){dojo._hasResource["dojox.grid._Events"]=true;dojo.provide("dojox.grid._Events");dojo.declare("dojox.grid._Events",null,{cellOverClass:"dojoxGridCellOver",onKeyEvent:function(e){this.dispatchKeyEvent(e);},onContentEvent:function(e){this.dispatchContentEvent(e);},onHeaderEvent:function(e){this.dispatchHeaderEvent(e);},onStyleRow:function(inRow){var i=inRow;i.customClasses+=(i.odd?" dojoxGridRowOdd":"")+(i.selected?" dojoxGridRowSelected":"")+(i.over?" dojoxGridRowOver":"");this.focus.styleRow(inRow);this.edit.styleRow(inRow);},onKeyDown:function(e){if(e.altKey||e.metaKey){return;}
var dk=dojo.keys;switch(e.keyCode){case dk.ESCAPE:this.edit.cancel();break;case dk.ENTER:if(!e.shiftKey){var isEditing=this.edit.isEditing();this.edit.apply();if(!isEditing){this.edit.setEditCell(this.focus.cell,this.focus.rowIndex);}}
break;case dk.SPACE:if(!this.edit.isEditing()){var colIdx=this.focus.getHeaderIndex();if(colIdx>=0){this.setSortIndex(colIdx);}else{this.selection.clickSelect(this.focus.rowIndex,e.ctrlKey,e.shiftKey);}
dojo.stopEvent(e);}
break;case dk.TAB:this.focus[e.shiftKey?'previousKey':'nextKey'](e);break;case dk.LEFT_ARROW:case dk.RIGHT_ARROW:if(!this.edit.isEditing()){dojo.stopEvent(e);var offset=(e.keyCode==dk.LEFT_ARROW)?1:-1;if(dojo._isBodyLtr()){offset*=-1;}
this.focus.move(0,offset);}
break;case dk.UP_ARROW:if(!this.edit.isEditing()&&this.focus.rowIndex!=0){dojo.stopEvent(e);this.focus.move(-1,0);}
break;case dk.DOWN_ARROW:if(!this.edit.isEditing()&&this.store&&this.focus.rowIndex+1!=this.rowCount){dojo.stopEvent(e);this.focus.move(1,0);}
break;case dk.PAGE_UP:if(!this.edit.isEditing()&&this.focus.rowIndex!=0){dojo.stopEvent(e);if(this.focus.rowIndex!=this.scroller.firstVisibleRow+1){this.focus.move(this.scroller.firstVisibleRow-this.focus.rowIndex,0);}else{this.setScrollTop(this.scroller.findScrollTop(this.focus.rowIndex-1));this.focus.move(this.scroller.firstVisibleRow-this.scroller.lastVisibleRow+1,0);}}
break;case dk.PAGE_DOWN:if(!this.edit.isEditing()&&this.store&&this.focus.rowIndex+1!=this.store.count){dojo.stopEvent(e);if(this.focus.rowIndex!=this.scroller.lastVisibleRow-1){this.focus.move(this.scroller.lastVisibleRow-this.focus.rowIndex-1,0);}else{this.setScrollTop(this.scroller.findScrollTop(this.focus.rowIndex+1));this.focus.move(this.scroller.lastVisibleRow-this.scroller.firstVisibleRow-1,0);}}
break;}},onMouseOver:function(e){e.rowIndex==-1?this.onHeaderCellMouseOver(e):this.onCellMouseOver(e);},onMouseOut:function(e){e.rowIndex==-1?this.onHeaderCellMouseOut(e):this.onCellMouseOut(e);},onMouseDown:function(e){e.rowIndex==-1?this.onHeaderCellMouseDown(e):this.onCellMouseDown(e);},onMouseOverRow:function(e){if(!this.rows.isOver(e.rowIndex)){this.rows.setOverRow(e.rowIndex);e.rowIndex==-1?this.onHeaderMouseOver(e):this.onRowMouseOver(e);}},onMouseOutRow:function(e){if(this.rows.isOver(-1)){this.onHeaderMouseOut(e);}else if(!this.rows.isOver(-2)){this.rows.setOverRow(-2);this.onRowMouseOut(e);}},onMouseDownRow:function(e){if(e.rowIndex!=-1)
this.onRowMouseDown(e);},onCellMouseOver:function(e){if(e.cellNode){dojo.addClass(e.cellNode,this.cellOverClass);}},onCellMouseOut:function(e){if(e.cellNode){dojo.removeClass(e.cellNode,this.cellOverClass);}},onCellMouseDown:function(e){},onCellClick:function(e){this._click[0]=this._click[1];this._click[1]=e;if(!this.edit.isEditCell(e.rowIndex,e.cellIndex)){this.focus.setFocusCell(e.cell,e.rowIndex);}
this.onRowClick(e);},onCellDblClick:function(e){if(dojo.isIE){this.edit.setEditCell(this._click[1].cell,this._click[1].rowIndex);}else if(this._click[0].rowIndex!=this._click[1].rowIndex){this.edit.setEditCell(this._click[0].cell,this._click[0].rowIndex);}else{this.edit.setEditCell(e.cell,e.rowIndex);}
this.onRowDblClick(e);},onCellContextMenu:function(e){this.onRowContextMenu(e);},onCellFocus:function(inCell,inRowIndex){this.edit.cellFocus(inCell,inRowIndex);},onRowClick:function(e){this.edit.rowClick(e);this.selection.clickSelectEvent(e);},onRowDblClick:function(e){},onRowMouseOver:function(e){},onRowMouseOut:function(e){},onRowMouseDown:function(e){},onRowContextMenu:function(e){dojo.stopEvent(e);},onHeaderMouseOver:function(e){},onHeaderMouseOut:function(e){},onHeaderCellMouseOver:function(e){if(e.cellNode){dojo.addClass(e.cellNode,this.cellOverClass);}},onHeaderCellMouseOut:function(e){if(e.cellNode){dojo.removeClass(e.cellNode,this.cellOverClass);}},onHeaderCellMouseDown:function(e){},onHeaderClick:function(e){},onHeaderCellClick:function(e){this.setSortIndex(e.cell.index);this.onHeaderClick(e);},onHeaderDblClick:function(e){},onHeaderCellDblClick:function(e){this.onHeaderDblClick(e);},onHeaderCellContextMenu:function(e){this.onHeaderContextMenu(e);},onHeaderContextMenu:function(e){if(!this.headerMenu){dojo.stopEvent(e);}},onStartEdit:function(inCell,inRowIndex){},onApplyCellEdit:function(inValue,inRowIndex,inFieldIndex){},onCancelEdit:function(inRowIndex){},onApplyEdit:function(inRowIndex){},onCanSelect:function(inRowIndex){return true;},onCanDeselect:function(inRowIndex){return true;},onSelected:function(inRowIndex){this.updateRowStyles(inRowIndex);},onDeselected:function(inRowIndex){this.updateRowStyles(inRowIndex);},onSelectionChanged:function(){}});}
if(!dojo._hasResource["dojox.grid._Grid"]){dojo._hasResource["dojox.grid._Grid"]=true;dojo.provide("dojox.grid._Grid");(function(){var jobs={cancel:function(inHandle){if(inHandle){clearTimeout(inHandle);}},jobs:[],job:function(inName,inDelay,inJob){jobs.cancelJob(inName);var job=function(){delete jobs.jobs[inName];inJob();}
jobs.jobs[inName]=setTimeout(job,inDelay);},cancelJob:function(inName){jobs.cancel(jobs.jobs[inName]);}};dojo.declare('dojox.grid._Grid',[dijit._Widget,dijit._Templated,dojox.grid._Events],{templateString:"<div class=\"dojoxGrid\" hidefocus=\"hidefocus\" role=\"wairole:grid\" dojoAttachEvent=\"onmouseout:_mouseOut\">\n\t<div class=\"dojoxGridMasterHeader\" dojoAttachPoint=\"viewsHeaderNode\" tabindex=\"-1\"></div>\n\t<div class=\"dojoxGridMasterView\" dojoAttachPoint=\"viewsNode\"></div>\n\t<div class=\"dojoxGridMasterMessages\" style=\"display: none;\" dojoAttachPoint=\"messagesNode\"></div>\n\t<span dojoAttachPoint=\"lastFocusNode\" tabindex=\"0\"></span>\n</div>\n",classTag:'dojoxGrid',get:function(inRowIndex){},rowCount:5,keepRows:75,rowsPerPage:25,autoWidth:false,autoHeight:'',autoRender:true,defaultHeight:'15em',height:'',structure:'',elasticView:-1,singleClickEdit:false,selectionMode:'extended',rowSelector:'',columnReordering:false,headerMenu:null,placeholderLabel:"GridColumns",_click:null,loadingMessage:"<span class='dojoxGridLoading'>${loadingState}</span>",errorMessage:"<span class='dojoxGridError'>${errorState}</span>",noDataMessage:"",sortInfo:0,themeable:true,_placeholders:null,buildRendering:function(){this.inherited(arguments);if(this.get==dojox.grid._Grid.prototype.get){this.get=null;}
if(!this.domNode.getAttribute('tabIndex')){this.domNode.tabIndex="0";}
this.createScroller();this.createLayout();this.createViews();this.createManagers();this.createSelection();this.connect(this.selection,"onSelected","onSelected");this.connect(this.selection,"onDeselected","onDeselected");this.connect(this.selection,"onChanged","onSelectionChanged");dojox.html.metrics.initOnFontResize();this.connect(dojox.html.metrics,"onFontResize","textSizeChanged");dojox.grid.util.funnelEvents(this.domNode,this,'doKeyEvent',dojox.grid.util.keyEvents);this.connect(this,"onShow","renderOnIdle");},postMixInProperties:function(){this.inherited(arguments);var messages=dojo.i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=dojo.string.substitute(this.loadingMessage,messages);this.errorMessage=dojo.string.substitute(this.errorMessage,messages);if(this.srcNodeRef&&this.srcNodeRef.style.height){this.height=this.srcNodeRef.style.height;}
this._setAutoHeightAttr(this.autoHeight,true);},postCreate:function(){this.styleChanged=this._styleChanged;this._placeholders=[];this.setHeaderMenu(this.headerMenu);this.setStructure(this.structure);this._click=[];},destroy:function(){this.domNode.onReveal=null;this.domNode.onSizeChange=null;this.edit.destroy();delete this.edit;this.views.destroyViews();if(this.scroller){this.scroller.destroy();delete this.scroller;}
if(this.focus){this.focus.destroy();delete this.focus;}
if(this.headerMenu&&this._placeholders.length){dojo.forEach(this._placeholders,function(p){p.unReplace(true);});this.headerMenu.unBindDomNode(this.viewsHeaderNode);}
this.inherited(arguments);},_setAutoHeightAttr:function(ah,skipRender){if(typeof ah=="string"){if(!ah||ah=="false"){ah=false;}else if(ah=="true"){ah=true;}else{ah=window.parseInt(ah,10);if(isNaN(ah)){ah=false;}
if(ah<0){ah=true;}else if(ah===0){ah=false;}}}
this.autoHeight=ah;if(typeof ah=="boolean"){this._autoHeight=ah;}else if(typeof ah=="number"){this._autoHeight=(ah>=this.rowCount);}else{this._autoHeight=false;}
if(this._started&&!skipRender){this.render();}},styleChanged:function(){this.setStyledClass(this.domNode,'');},_styleChanged:function(){this.styleChanged();this.update();},textSizeChanged:function(){setTimeout(dojo.hitch(this,"_textSizeChanged"),1);},_textSizeChanged:function(){if(this.domNode){this.views.forEach(function(v){v.content.update();});this.render();}},sizeChange:function(){jobs.job(this.id+'SizeChange',50,dojo.hitch(this,"update"));},renderOnIdle:function(){setTimeout(dojo.hitch(this,"render"),1);},createManagers:function(){this.rows=new dojox.grid._RowManager(this);this.focus=new dojox.grid._FocusManager(this);this.edit=new dojox.grid._EditManager(this);},createSelection:function(){this.selection=new dojox.grid.Selection(this);},createScroller:function(){this.scroller=new dojox.grid._Scroller();this.scroller.grid=this;this.scroller._pageIdPrefix=this.id+'-';this.scroller.renderRow=dojo.hitch(this,"renderRow");this.scroller.removeRow=dojo.hitch(this,"rowRemoved");},createLayout:function(){this.layout=new dojox.grid._Layout(this);this.connect(this.layout,"moveColumn","onMoveColumn");},onMoveColumn:function(){this.render();this._resize();},createViews:function(){this.views=new dojox.grid._ViewManager(this);this.views.createView=dojo.hitch(this,"createView");},createView:function(inClass,idx){var c=dojo.getObject(inClass);var view=new c({grid:this,index:idx});this.viewsNode.appendChild(view.domNode);this.viewsHeaderNode.appendChild(view.headerNode);this.views.addView(view);return view;},buildViews:function(){for(var i=0,vs;(vs=this.layout.structure[i]);i++){this.createView(vs.type||dojox._scopeName+".grid._View",i).setStructure(vs);}
this.scroller.setContentNodes(this.views.getContentNodes());},setStructure:function(inStructure){var s=inStructure;if(s&&dojo.isString(s)){s=dojo.getObject(s);}
if(!s){if(this.layout.structure){s=this.layout.structure;}else{return;}}
this.views.destroyViews();if(s!==this.layout.structure){this.layout.setStructure(s);}
this._structureChanged();},getColumnTogglingItems:function(){return dojo.map(this.layout.cells,function(cell){if(!cell.menuItems){cell.menuItems=[];}
var self=this;var item=new dijit.CheckedMenuItem({label:cell.name,checked:!cell.hidden,_gridCell:cell,onChange:function(checked){if(self.layout.setColumnVisibility(this._gridCell.index,checked)){var items=this._gridCell.menuItems;if(items.length>1){dojo.forEach(items,function(item){if(item!==this){item.setAttribute("checked",checked);}},this);}
var checked=dojo.filter(self.layout.cells,function(c){if(c.menuItems.length>1){dojo.forEach(c.menuItems,"item.attr('disabled', false);");}else{c.menuItems[0].attr('disabled',false);}
return!c.hidden;});if(checked.length==1){dojo.forEach(checked[0].menuItems,"item.attr('disabled', true);");}}},destroy:function(){var index=dojo.indexOf(this._gridCell.menuItems,this);this._gridCell.menuItems.splice(index,1);delete this._gridCell;dijit.CheckedMenuItem.prototype.destroy.apply(this,arguments);}});cell.menuItems.push(item);return item;},this);},setHeaderMenu:function(menu){if(this._placeholders.length){dojo.forEach(this._placeholders,function(p){p.unReplace(true);});this._placeholders=[];}
if(this.headerMenu){this.headerMenu.unBindDomNode(this.viewsHeaderNode);}
this.headerMenu=menu;if(!menu){return;}
this.headerMenu.bindDomNode(this.viewsHeaderNode);if(this.headerMenu.getPlaceholders){this._placeholders=this.headerMenu.getPlaceholders(this.placeholderLabel);}},setupHeaderMenu:function(){if(this._placeholders&&this._placeholders.length){dojo.forEach(this._placeholders,function(p){if(p._replaced){p.unReplace(true);}
p.replace(this.getColumnTogglingItems());},this);}},_fetch:function(start){this.setScrollTop(0);},getItem:function(inRowIndex){return null;},showMessage:function(message){if(message){this.messagesNode.innerHTML=message;this.messagesNode.style.display="";}else{this.messagesNode.innerHTML="";this.messagesNode.style.display="none";}},_structureChanged:function(){this.buildViews();if(this.autoRender&&this._started){this.render();}},hasLayout:function(){return this.layout.cells.length;},resize:function(changeSize,resultSize){var sizeBox={};dojo.mixin(sizeBox,resultSize||{});dojo.mixin(sizeBox,changeSize||{});this._sizeBox=sizeBox;this._resize();this.sizeChange();},_getPadBorder:function(){this._padBorder=this._padBorder||dojo._getPadBorderExtents(this.domNode);return this._padBorder;},_getHeaderHeight:function(){var vns=this.viewsHeaderNode.style,t=vns.display=="none"?0:this.views.measureHeader();vns.height=t+'px';this.views.normalizeHeaderNodeHeight();return t;},_resize:function(){var pn=this.domNode.parentNode;if(!pn||pn.nodeType!=1||!this.hasLayout()||pn.style.visibility=="hidden"||pn.style.display=="none"){return;}
var padBorder=this._getPadBorder();if(this._autoHeight){this.domNode.style.height='auto';this.viewsNode.style.height='';}else if(typeof this.autoHeight=="number"){var h=this._getHeaderHeight();h+=(this.scroller.averageRowHeight*this.autoHeight);this.domNode.style.height=h+"px";}else if(this.flex>0){}else if(this.domNode.clientHeight<=padBorder.h){if(pn==document.body){this.domNode.style.height=this.defaultHeight;}else if(this.height){this.domNode.style.height=this.height;}else{this.fitTo="parent";}}
if(this._sizeBox){dojo.contentBox(this.domNode,this._sizeBox);}else if(this.fitTo=="parent"){var h=dojo._getContentBox(pn).h;dojo.marginBox(this.domNode,{h:Math.max(0,h)});}
var h=dojo._getContentBox(this.domNode).h;if(h==0&&!this._autoHeight){this.viewsHeaderNode.style.display="none";}else{this.viewsHeaderNode.style.display="block";this._getHeaderHeight();}
this.adaptWidth();this.adaptHeight();this.postresize();},adaptWidth:function(){var w=this.autoWidth?0:this.domNode.clientWidth||(this.domNode.offsetWidth-this._getPadBorder().w),vw=this.views.arrange(1,w);this.views.onEach("adaptWidth");if(this.autoWidth)
this.domNode.style.width=vw+"px";},adaptHeight:function(){var t=this._getHeaderHeight();var h=(this._autoHeight?-1:Math.max(this.domNode.clientHeight-t,0)||0);this.views.onEach('setSize',[0,h]);this.views.onEach('adaptHeight');if(!this._autoHeight){var numScroll=0,numNoScroll=0;var noScrolls=dojo.filter(this.views.views,function(v){var has=v.hasHScrollbar();if(has){numScroll++;}else{numNoScroll++;}
return(!has);});if(numScroll>0&&numNoScroll>0){dojo.forEach(noScrolls,function(v){v.adaptHeight(true);});}}
if(this.autoHeight===true||h!=-1||(typeof this.autoHeight=="number"&&this.autoHeight>=this.rowCount)){this.scroller.windowHeight=h;}else{this.scroller.windowHeight=Math.max(this.domNode.clientHeight-t,0);}},startup:function(){if(this._started){return;}
this.inherited(arguments);this.render();},render:function(){if(!this.domNode){return;}
if(!this._started){return;}
if(!this.hasLayout()){this.scroller.init(0,this.keepRows,this.rowsPerPage);return;}
this.update=this.defaultUpdate;this._render();},_render:function(){this.scroller.init(this.rowCount,this.keepRows,this.rowsPerPage);this.prerender();this.setScrollTop(0);this.postrender();},prerender:function(){this.keepRows=this._autoHeight?0:this.constructor.prototype.keepRows;this.scroller.setKeepInfo(this.keepRows);this.views.render();this._resize();},postrender:function(){this.postresize();this.focus.initFocusView();dojo.setSelectable(this.domNode,false);},postresize:function(){if(this._autoHeight){var size=Math.max(this.views.measureContent())+'px';this.viewsNode.style.height=size;}},renderRow:function(inRowIndex,inNodes){this.views.renderRow(inRowIndex,inNodes);},rowRemoved:function(inRowIndex){this.views.rowRemoved(inRowIndex);},invalidated:null,updating:false,beginUpdate:function(){this.invalidated=[];this.updating=true;},endUpdate:function(){this.updating=false;var i=this.invalidated,r;if(i.all){this.update();}else if(i.rowCount!=undefined){this.updateRowCount(i.rowCount);}else{for(r in i){this.updateRow(Number(r));}}
this.invalidated=null;},defaultUpdate:function(){if(!this.domNode){return;}
if(this.updating){this.invalidated.all=true;return;}
var lastScrollTop=this.scrollTop;this.prerender();this.scroller.invalidateNodes();this.setScrollTop(lastScrollTop);this.postrender();},update:function(){this.render();},updateRow:function(inRowIndex){inRowIndex=Number(inRowIndex);if(this.updating){this.invalidated[inRowIndex]=true;}else{this.views.updateRow(inRowIndex);this.scroller.rowHeightChanged(inRowIndex);}},updateRows:function(startIndex,howMany){startIndex=Number(startIndex);howMany=Number(howMany);if(this.updating){for(var i=0;i<howMany;i++){this.invalidated[i+startIndex]=true;}}else{for(var i=0;i<howMany;i++){this.views.updateRow(i+startIndex);}
this.scroller.rowHeightChanged(startIndex);}},updateRowCount:function(inRowCount){if(this.updating){this.invalidated.rowCount=inRowCount;}else{this.rowCount=inRowCount;this._setAutoHeightAttr(this.autoHeight,true);if(this.layout.cells.length){this.scroller.updateRowCount(inRowCount);}
this._resize();if(this.layout.cells.length){this.setScrollTop(this.scrollTop);}}},updateRowStyles:function(inRowIndex){this.views.updateRowStyles(inRowIndex);},rowHeightChanged:function(inRowIndex){this.views.renormalizeRow(inRowIndex);this.scroller.rowHeightChanged(inRowIndex);},fastScroll:true,delayScroll:false,scrollRedrawThreshold:(dojo.isIE?100:50),scrollTo:function(inTop){if(!this.fastScroll){this.setScrollTop(inTop);return;}
var delta=Math.abs(this.lastScrollTop-inTop);this.lastScrollTop=inTop;if(delta>this.scrollRedrawThreshold||this.delayScroll){this.delayScroll=true;this.scrollTop=inTop;this.views.setScrollTop(inTop);jobs.job('dojoxGridScroll',200,dojo.hitch(this,"finishScrollJob"));}else{this.setScrollTop(inTop);}},finishScrollJob:function(){this.delayScroll=false;this.setScrollTop(this.scrollTop);},setScrollTop:function(inTop){this.scroller.scroll(this.views.setScrollTop(inTop));},scrollToRow:function(inRowIndex){this.setScrollTop(this.scroller.findScrollTop(inRowIndex)+1);},styleRowNode:function(inRowIndex,inRowNode){if(inRowNode){this.rows.styleRowNode(inRowIndex,inRowNode);}},_mouseOut:function(e){this.rows.setOverRow(-2);},getCell:function(inIndex){return this.layout.cells[inIndex];},setCellWidth:function(inIndex,inUnitWidth){this.getCell(inIndex).unitWidth=inUnitWidth;},getCellName:function(inCell){return"Cell "+inCell.index;},canSort:function(inSortInfo){},sort:function(){},getSortAsc:function(inSortInfo){inSortInfo=inSortInfo==undefined?this.sortInfo:inSortInfo;return Boolean(inSortInfo>0);},getSortIndex:function(inSortInfo){inSortInfo=inSortInfo==undefined?this.sortInfo:inSortInfo;return Math.abs(inSortInfo)-1;},setSortIndex:function(inIndex,inAsc){var si=inIndex+1;if(inAsc!=undefined){si*=(inAsc?1:-1);}else if(this.getSortIndex()==inIndex){si=-this.sortInfo;}
this.setSortInfo(si);},setSortInfo:function(inSortInfo){if(this.canSort(inSortInfo)){this.sortInfo=inSortInfo;this.sort();this.update();}},doKeyEvent:function(e){e.dispatch='do'+e.type;this.onKeyEvent(e);},_dispatch:function(m,e){if(m in this){return this[m](e);}},dispatchKeyEvent:function(e){this._dispatch(e.dispatch,e);},dispatchContentEvent:function(e){this.edit.dispatchEvent(e)||e.sourceView.dispatchContentEvent(e)||this._dispatch(e.dispatch,e);},dispatchHeaderEvent:function(e){e.sourceView.dispatchHeaderEvent(e)||this._dispatch('doheader'+e.type,e);},dokeydown:function(e){this.onKeyDown(e);},doclick:function(e){if(e.cellNode){this.onCellClick(e);}else{this.onRowClick(e);}},dodblclick:function(e){if(e.cellNode){this.onCellDblClick(e);}else{this.onRowDblClick(e);}},docontextmenu:function(e){if(e.cellNode){this.onCellContextMenu(e);}else{this.onRowContextMenu(e);}},doheaderclick:function(e){if(e.cellNode){this.onHeaderCellClick(e);}else{this.onHeaderClick(e);}},doheaderdblclick:function(e){if(e.cellNode){this.onHeaderCellDblClick(e);}else{this.onHeaderDblClick(e);}},doheadercontextmenu:function(e){if(e.cellNode){this.onHeaderCellContextMenu(e);}else{this.onHeaderContextMenu(e);}},doStartEdit:function(inCell,inRowIndex){this.onStartEdit(inCell,inRowIndex);},doApplyCellEdit:function(inValue,inRowIndex,inFieldIndex){this.onApplyCellEdit(inValue,inRowIndex,inFieldIndex);},doCancelEdit:function(inRowIndex){this.onCancelEdit(inRowIndex);},doApplyEdit:function(inRowIndex){this.onApplyEdit(inRowIndex);},addRow:function(){this.updateRowCount(this.rowCount+1);},removeSelectedRows:function(){this.updateRowCount(Math.max(0,this.rowCount-this.selection.getSelected().length));this.selection.clear();}});dojox.grid._Grid.markupFactory=function(props,node,ctor,cellFunc){var d=dojo;var widthFromAttr=function(n){var w=d.attr(n,"width")||"auto";if((w!="auto")&&(w.slice(-2)!="em")&&(w.slice(-1)!="%")){w=parseInt(w)+"px";}
return w;}
if(!props.structure&&node.nodeName.toLowerCase()=="table"){props.structure=d.query("> colgroup",node).map(function(cg){var sv=d.attr(cg,"span");var v={noscroll:(d.attr(cg,"noscroll")=="true")?true:false,__span:(!!sv?parseInt(sv):1),cells:[]};if(d.hasAttr(cg,"width")){v.width=widthFromAttr(cg);}
return v;});if(!props.structure.length){props.structure.push({__span:Infinity,cells:[]});}
d.query("thead > tr",node).forEach(function(tr,tr_idx){var cellCount=0;var viewIdx=0;var lastViewIdx;var cView=null;d.query("> th",tr).map(function(th){if(!cView){lastViewIdx=0;cView=props.structure[0];}else if(cellCount>=(lastViewIdx+cView.__span)){viewIdx++;lastViewIdx+=cView.__span;lastView=cView;cView=props.structure[viewIdx];}
var cell={name:d.trim(d.attr(th,"name")||th.innerHTML),colSpan:parseInt(d.attr(th,"colspan")||1,10),type:d.trim(d.attr(th,"cellType")||"")};cellCount+=cell.colSpan;var rowSpan=d.attr(th,"rowspan");if(rowSpan){cell.rowSpan=rowSpan;}
if(d.hasAttr(th,"width")){cell.width=widthFromAttr(th);}
if(d.hasAttr(th,"relWidth")){cell.relWidth=window.parseInt(dojo.attr(th,"relWidth"),10);}
if(d.hasAttr(th,"hidden")){cell.hidden=d.attr(th,"hidden")=="true";}
if(cellFunc){cellFunc(th,cell);}
cell.type=cell.type?dojo.getObject(cell.type):dojox.grid.cells.Cell;if(cell.type&&cell.type.markupFactory){cell.type.markupFactory(th,cell);}
if(!cView.cells[tr_idx]){cView.cells[tr_idx]=[];}
cView.cells[tr_idx].push(cell);});});}
return new ctor(props,node);}})();}
if(!dojo._hasResource["dojox.grid.DataSelection"]){dojo._hasResource["dojox.grid.DataSelection"]=true;dojo.provide("dojox.grid.DataSelection");dojo.declare("dojox.grid.DataSelection",dojox.grid.Selection,{getFirstSelected:function(){var idx=dojox.grid.Selection.prototype.getFirstSelected.call(this);if(idx==-1){return null;}
return this.grid.getItem(idx);},getNextSelected:function(inPrev){var old_idx=this.grid.getItemIndex(inPrev);var idx=dojox.grid.Selection.prototype.getNextSelected.call(this,old_idx);if(idx==-1){return null;}
return this.grid.getItem(idx);},getSelected:function(){var result=[];for(var i=0,l=this.selected.length;i<l;i++){if(this.selected[i]){result.push(this.grid.getItem(i));}}
return result;},addToSelection:function(inItemOrIndex){if(this.mode=='none'){return;}
var idx=null;if(typeof inItemOrIndex=="number"||typeof inItemOrIndex=="string"){idx=inItemOrIndex;}else{idx=this.grid.getItemIndex(inItemOrIndex);}
dojox.grid.Selection.prototype.addToSelection.call(this,idx);},deselect:function(inItemOrIndex){if(this.mode=='none'){return;}
var idx=null;if(typeof inItemOrIndex=="number"||typeof inItemOrIndex=="string"){idx=inItemOrIndex;}else{idx=this.grid.getItemIndex(inItemOrIndex);}
dojox.grid.Selection.prototype.deselect.call(this,idx);},deselectAll:function(inItemOrIndex){var idx=null;if(inItemOrIndex||typeof inItemOrIndex=="number"){if(typeof inItemOrIndex=="number"||typeof inItemOrIndex=="string"){idx=inItemOrIndex;}else{idx=this.grid.getItemIndex(inItemOrIndex);}
dojox.grid.Selection.prototype.deselectAll.call(this,idx);}else{this.inherited(arguments);}}});}
if(!dojo._hasResource["dojox.grid.DataGrid"]){dojo._hasResource["dojox.grid.DataGrid"]=true;dojo.provide("dojox.grid.DataGrid");dojo.declare("dojox.grid.DataGrid",dojox.grid._Grid,{store:null,query:null,queryOptions:null,fetchText:'...',items:null,_store_connects:null,_by_idty:null,_by_idx:null,_cache:null,_pages:null,_pending_requests:null,_bop:-1,_eop:-1,_requests:0,rowCount:0,_isLoaded:false,_isLoading:false,postCreate:function(){this._pages=[];this._store_connects=[];this._by_idty={};this._by_idx=[];this._cache=[];this._pending_requests={};this._setStore(this.store);this.inherited(arguments);},createSelection:function(){this.selection=new dojox.grid.DataSelection(this);},get:function(inRowIndex,inItem){return(!inItem?this.defaultValue:(!this.field?this.value:this.grid.store.getValue(inItem,this.field)));},_onSet:function(item,attribute,oldValue,newValue){var idx=this.getItemIndex(item);if(idx>-1){this.updateRow(idx);}},_addItem:function(item,index,noUpdate){var idty=this._hasIdentity?this.store.getIdentity(item):dojo.toJson(this.query)+":idx:"+index+":sort:"+dojo.toJson(this.getSortProps());var o={idty:idty,item:item};this._by_idty[idty]=this._by_idx[index]=o;if(!noUpdate){this.updateRow(index);}},_onNew:function(item,parentInfo){this.updateRowCount(this.rowCount+1);this._addItem(item,this.rowCount-1);this.showMessage();},_onDelete:function(item){var idx=this._getItemIndex(item,true);if(idx>=0){var o=this._by_idx[idx];this._by_idx.splice(idx,1);delete this._by_idty[o.idty];this.updateRowCount(this.rowCount-1);if(this.rowCount===0){this.showMessage(this.noDataMessage);}}},_onRevert:function(){this._refresh();},setStore:function(store,query,queryOptions){this._setQuery(query,queryOptions);this._setStore(store);this._refresh(true);},setQuery:function(query,queryOptions){this._setQuery(query,queryOptions);this._refresh(true);},setItems:function(items){this.items=items;this._setStore(this.store);this._refresh(true);},_setQuery:function(query,queryOptions){this.query=query||this.query;this.queryOptions=queryOptions||this.queryOptions;},_setStore:function(store){if(this.store&&this._store_connects){dojo.forEach(this._store_connects,function(arr){dojo.forEach(arr,dojo.disconnect);});}
this.store=store;if(this.store){var f=this.store.getFeatures();var h=[];this._canEdit=!!f["dojo.data.api.Write"]&&!!f["dojo.data.api.Identity"];this._hasIdentity=!!f["dojo.data.api.Identity"];if(!!f["dojo.data.api.Notification"]&&!this.items){h.push(this.connect(this.store,"onSet","_onSet"));h.push(this.connect(this.store,"onNew","_onNew"));h.push(this.connect(this.store,"onDelete","_onDelete"));}
if(this._canEdit){h.push(this.connect(this.store,"revert","_onRevert"));}
this._store_connects=h;}},_onFetchBegin:function(size,req){if(this.rowCount!=size){if(req.isRender){this.scroller.init(size,this.keepRows,this.rowsPerPage);this.prerender();}
this.updateRowCount(size);}},_onFetchComplete:function(items,req){if(items&&items.length>0){dojo.forEach(items,function(item,idx){this._addItem(item,req.start+idx,true);},this);this.updateRows(req.start,items.length);if(req.isRender){this.setScrollTop(0);this.postrender();}else if(this._lastScrollTop){this.setScrollTop(this._lastScrollTop);}}
delete this._lastScrollTop;if(!this._isLoaded){this._isLoading=false;this._isLoaded=true;if(!items||!items.length){this.showMessage(this.noDataMessage);}else{this.showMessage();}}
this._pending_requests[req.start]=false;},_onFetchError:function(err,req){delete this._lastScrollTop;if(!this._isLoaded){this._isLoading=false;this._isLoaded=true;this.showMessage(this.errorMessage);}
this.onFetchError(err,req);},onFetchError:function(err,req){},_fetch:function(start,isRender){var start=start||0;if(this.store&&!this._pending_requests[start]){if(!this._isLoaded&&!this._isLoading){this._isLoading=true;this.showMessage(this.loadingMessage);}
this._pending_requests[start]=true;try{if(this.items){var items=this.items;var store=this.store;this.rowsPerPage=items.length
var req={start:start,count:this.rowsPerPage,isRender:isRender};this._onFetchBegin(items.length,req);var waitCount=0;dojo.forEach(items,function(i){if(!store.isItemLoaded(i)){waitCount++;}});if(waitCount===0){this._onFetchComplete(items,req);}else{var onItem=function(item){waitCount--;if(waitCount===0){this._onFetchComplete(items,req);}};dojo.forEach(items,function(i){if(!store.isItemLoaded(i)){store.loadItem({item:i,onItem:onItem,scope:this});}},this);}}else{this.store.fetch({start:start,count:this.rowsPerPage,query:this.query,sort:this.getSortProps(),queryOptions:this.queryOptions,isRender:isRender,onBegin:dojo.hitch(this,"_onFetchBegin"),onComplete:dojo.hitch(this,"_onFetchComplete"),onError:dojo.hitch(this,"_onFetchError")});}}catch(e){this._onFetchError(e);}}},_clearData:function(){this.updateRowCount(0);this._by_idty={};this._by_idx=[];this._pages=[];this._bop=this._eop=-1;this._isLoaded=false;this._isLoading=false;},getItem:function(idx){var data=this._by_idx[idx];if(!data||(data&&!data.item)){this._preparePage(idx);return null;}
return data.item;},getItemIndex:function(item){return this._getItemIndex(item,false);},_getItemIndex:function(item,isDeleted){if(!isDeleted&&!this.store.isItem(item)){return-1;}
var idty=this._hasIdentity?this.store.getIdentity(item):null;for(var i=0,l=this._by_idx.length;i<l;i++){var d=this._by_idx[i];if(d&&((idty&&d.idty==idty)||(d.item===item))){return i;}}
return-1;},filter:function(query,reRender){this.query=query;if(reRender){this._clearData();}
this._fetch();},_getItemAttr:function(idx,attr){var item=this.getItem(idx);return(!item?this.fetchText:this.store.getValue(item,attr));},_render:function(){if(this.domNode.parentNode){this.scroller.init(this.rowCount,this.keepRows,this.rowsPerPage);this.prerender();this._fetch(0,true);}},_requestsPending:function(inRowIndex){return this._pending_requests[inRowIndex];},_rowToPage:function(inRowIndex){return(this.rowsPerPage?Math.floor(inRowIndex/this.rowsPerPage):inRowIndex);},_pageToRow:function(inPageIndex){return(this.rowsPerPage?this.rowsPerPage*inPageIndex:inPageIndex);},_preparePage:function(inRowIndex){if(inRowIndex<this._bop||inRowIndex>=this._eop){var pageIndex=this._rowToPage(inRowIndex);this._needPage(pageIndex);this._bop=pageIndex*this.rowsPerPage;this._eop=this._bop+(this.rowsPerPage||this.rowCount);}},_needPage:function(inPageIndex){if(!this._pages[inPageIndex]){this._pages[inPageIndex]=true;this._requestPage(inPageIndex);}},_requestPage:function(inPageIndex){var row=this._pageToRow(inPageIndex);var count=Math.min(this.rowsPerPage,this.rowCount-row);if(count>0){this._requests++;if(!this._requestsPending(row)){setTimeout(dojo.hitch(this,"_fetch",row,false),1);}}},getCellName:function(inCell){return inCell.field;},_refresh:function(isRender){this._clearData();this._fetch(0,isRender);},sort:function(){this._lastScrollTop=this.scrollTop;this._refresh();},canSort:function(){return(!this._isLoading);},getSortProps:function(){var c=this.getCell(this.getSortIndex());if(!c){return null;}else{var desc=c["sortDesc"];var si=!(this.sortInfo>0);if(typeof desc=="undefined"){desc=si;}else{desc=si?!desc:desc;}
return[{attribute:c.field,descending:desc}];}},styleRowState:function(inRow){if(this.store&&this.store.getState){var states=this.store.getState(inRow.index),c='';for(var i=0,ss=["inflight","error","inserting"],s;s=ss[i];i++){if(states[s]){c=' dojoxGridRow-'+s;break;}}
inRow.customClasses+=c;}},onStyleRow:function(inRow){this.styleRowState(inRow);this.inherited(arguments);},canEdit:function(inCell,inRowIndex){return this._canEdit;},_copyAttr:function(idx,attr){var row={};var backstop={};var src=this.getItem(idx);return this.store.getValue(src,attr);},doStartEdit:function(inCell,inRowIndex){if(!this._cache[inRowIndex]){this._cache[inRowIndex]=this._copyAttr(inRowIndex,inCell.field);}
this.onStartEdit(inCell,inRowIndex);},doApplyCellEdit:function(inValue,inRowIndex,inAttrName){this.store.fetchItemByIdentity({identity:this._by_idx[inRowIndex].idty,onItem:dojo.hitch(this,function(item){this.store.setValue(item,inAttrName,inValue);this.onApplyCellEdit(inValue,inRowIndex,inAttrName);})});},doCancelEdit:function(inRowIndex){var cache=this._cache[inRowIndex];if(cache){this.updateRow(inRowIndex);delete this._cache[inRowIndex];}
this.onCancelEdit.apply(this,arguments);},doApplyEdit:function(inRowIndex,inDataAttr){var cache=this._cache[inRowIndex];this.onApplyEdit(inRowIndex);},removeSelectedRows:function(){if(this._canEdit){this.edit.apply();var items=this.selection.getSelected();if(items.length){dojo.forEach(items,this.store.deleteItem,this.store);this.selection.clear();}}}});dojox.grid.DataGrid.markupFactory=function(props,node,ctor,cellFunc){return dojox.grid._Grid.markupFactory(props,node,ctor,function(node,cellDef){var field=dojo.trim(dojo.attr(node,"field")||"");if(field){cellDef.field=field;}
cellDef.field=cellDef.field||cellDef.name;if(cellFunc){cellFunc(node,cellDef);}});}}
dojo.i18n._preloadLocalizations("dojo.nls.arcgis_dojo",["he","nl","tr","no","ko","el","en","en-gb","ROOT","zh-cn","hu","es","fi-fi","pt-br","ca","fi","he-il","xx","ru","it","fr","cs","de-de","fr-fr","it-it","es-es","ja","sk","da","sl","pl","de","sv","pt","pt-pt","nl-nl","zh-tw","ko-kr","ar","en-us","zh","th","ja-jp"]);
