var fluid=fluid||{};(function(jQuery,fluid){fluid.keys={TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:19,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,i:73,j:74,k:75,m:77};fluid.roles={GRID:{container:"grid",item:"gridcell"},LIST:{container:"list",item:"listitem"},REGIONS:{container:"main",item:"article"}};fluid.orientation={HORIZONTAL:"horiz",VERTICAL:"vert"};fluid.position={BEFORE:0,AFTER:1,INSIDE:2,USE_LAST_KNOWN:3,DISALLOWED:-1};fluid.direction={NEXT:1,PREVIOUS:-1};fluid.defaultKeysets=[{modifier:function(evt){return evt.ctrlKey},up:fluid.keys.UP,down:fluid.keys.DOWN,right:fluid.keys.RIGHT,left:fluid.keys.LEFT},{modifier:function(evt){return evt.ctrlKey},up:fluid.keys.i,down:fluid.keys.m,right:fluid.keys.k,left:fluid.keys.j}];fluid.mixin=function(target,args){for(var arg in args){if(args.hasOwnProperty(arg)){target[arg]=args[arg]}}};fluid.wrap=function(obj){return((!obj||obj.jquery)?obj:jQuery(obj))};fluid.unwrap=function(obj){return obj.jquery?obj[0]:obj};fluid.container=function(container){if(!container.jquery&&(typeof container==="string")){container=fluid.utils.jById(container)}else{if(container.nodeType&&(container.nodeType===1||container.nodeType===9)){container=jQuery(container)}}if(!container||!container.jquery||container.length!==1){throw {name:"NotOne",message:"A single container element was not found."}}return container};var defaultsStore={};fluid.defaults=function(componentName,defaultsObject){if(arguments.length>1){defaultsStore[componentName]=defaultsObject;return defaultsObject}return defaultsStore[componentName]};fluid.utils={};fluid.computeAbsolutePosition=function(element){var curleft=curtop=0;if(element.offsetParent){do{curleft+=element.offsetLeft;curtop+=element.offsetTop}while(element=element.offsetParent);return[curleft,curtop]}};fluid.utils.seekNodesById=function(rootnode,tagname,idmatch){var inputs=rootnode.getElementsByTagName(tagname);var togo=[];for(var i=0;i<inputs.length;i+=1){var input=inputs[i];var id=input.id;if(id&&id.match(idmatch)){togo.push(input)}}return togo};fluid.utils.escapeSelector=function(id){return id.replace(/\:/g,"\\:")};fluid.utils.findForm=function(element){while(element){if(element.nodeName.toLowerCase()==="form"){return element}element=element.parentNode}};fluid.utils.adaptFindItems=function(finder){var finderFn=function(){};var findItems={};if(typeof finder==="function"){finderFn=finder}else{findItems=finder}findItems.movables=findItems.movables||finderFn;findItems.selectables=findItems.selectables||findItems.movables;findItems.dropTargets=findItems.dropTargets||findItems.movables;findItems.grabHandle=findItems.grabHandle||function(item){return item};return findItems};fluid.utils.jById=function(id){var el=jQuery("[id="+id+"]");if(el[0]&&el[0].id===id){return el}return null};fluid.utils.debug=function(str){if(window.console){if(console.debug){console.debug(str)}else{console.log(str)}}};fluid.utils.derivePercent=function(num,total){return Math.round((num*100)/total)};fluid.utils.filesizeStr=function(bytes){if(typeof bytes==="number"){if(bytes===0){return"0.0 KB"}else{if(bytes>0){if(bytes<1048576){return(Math.ceil(bytes/1024*10)/10).toFixed(1)+" KB"}else{return(Math.ceil(bytes/1048576*10)/10).toFixed(1)+" MB"}}}}return""};fluid.utils.initCssClassNames=function(defaultNames,classNames){if(!classNames){return defaultNames}var cssClassNames={};for(var className in defaultNames){if(defaultNames.hasOwnProperty(className)){cssClassNames[className]=classNames[className]||defaultNames[className]}}return cssClassNames};fluid.utils.stringTemplate=function(template,values){var newString=template;for(var key in values){if(values.hasOwnProperty(key)){var searchStr="%"+key;newString=newString.replace(searchStr,values[key])}}return newString};fluid.utils.findAncestor=function(element,test){return test(element)?element:jQuery.grep(jQuery(element).parents(),test)[0]}})(jQuery,fluid);